题解:UVA12802 Gift From the Gods

· · 题解

题目大意

这可能是这个题最难的部分了(bushi

每次输入一个数 a,输出 2a,如果 2a 回文且是个质数,那么就结束程序。

就这样。是不是很简单。

代码

#include <bits/stdc++.h>
using namespace std;
bool prm(int a)
{
    if (a < 2) return 0;
    for (int i = 2; i * i <= a; i ++)
        if (a % i == 0)
            return 0;
    return 1;
}//判素数
bool hw (int a)
{
    int cnt = 0;
    int a2 = a;//拷贝一下
    while (a2)
    {
        cnt = cnt * 10 + a2 % 10;
        a2 /= 10;
    }
    return cnt == a;
}//判断是否回文
int main()
{
    while (1)
    {
        int a;
        cin >> a;
        a *= 2;
        cout << a << endl;
        if (hw (a) && prm(a)) break;//都满足
    }
    return 0;
}

另外,好像还可以直接这么写

while ((cin >> a))
{
    cout << 2a << endl;
}

有些题就是这样的。但是本人无 UVA 账号,就不扯那么多了