3350700_ac_110ms_416k.cc

来自「POJ 1001己AC源代码」· CC 代码 · 共 56 行

CC
56
字号
#include <iostream>
#include <cmath>
using namespace std;
int check(int x)
{
    int t = x, sum = 0, bound = (int)sqrt((double)x) + 2;
    for (int i = 2; i != bound; ++i)
	{
        if (t < i) break;
        while (t % i == 0)
		{
            int temp = i;
            while (temp != 0)
			{
                sum += temp % 10;
                temp /= 10;
            }
            t /= i;
        }
    }
    if (t == x) return 0;
    if (t != 1)
	{
        while (t != 0)
		{
			sum += t % 10;
            t /= 10;
        }
    }
    return sum;
}
int main(){
    int n, sum, temp;
    while (cin >> n && n != 0)
	{
        if (n == 1) n = 2;
        for (int i = n + 1; ; ++i)
		{
            temp = i; sum = 0;
            while (temp != 0)
			{
                sum += temp % 10;
                temp /= 10;
            }
            if (temp == i) continue;
            int sum2=check(i);
            if (sum2 == sum)
			{
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?