#include #include #include #include using namespace std; bool isprime( int n ) { if ( n == 1 ) return false; if ( n == 2 ) return true; if ( n % 2 == 0 ) return false; const int lim = (int)(sqrt((double)n) + 0.5); for ( int d = 3; d <= lim && d < n; d++ ) if ( n % d == 0 ) return false; return true; } int computeNext( int n ) { int result = 0; while ( n != 0 ) result += n%10, n /= 10; return result; } int main() { ifstream fin("roots.txt"); int initn; while ( fin >> initn && initn != 0 ) { int n = initn; while ( n >= 10 && !isprime(n) ) n = computeNext(n); if ( isprime(n) ) printf("%7d %7d\n", initn, n); else printf("%7d %7s\n", initn, "none"); } return 0; }