像17,是一个素数,当逆转,71也是素数.
我们设法得到这个代码,但我们无法完成它.
#includemain() { int i = 10, j, c, sum, b, x, d, e, z, f, g; printf("\nPrime numbers from 10 to 99 are the follwing:\n"); while (i <= 99) { c=0; for (j = 1; j <= i; j++) { if (i % j == 0) c++; } if (c == 2) { b = i; d = b / 10; e = b - (10 * d); x = (e * 10) + d; { z = 0; f = x; for (j = 1; j <= f; j++) { if (f % j == 0) z++; } if (z == 2) { printf("%d %d\n", i, f); } } } i++; } getch(); }
我的问题是如何添加所有的f ..
答案应该是429.
我怎么能添加所有的f?
为什么不将代码分解为某些函数:
bool isPrime(int number)
检查数字是否为素数.
int reverse(int number)
这反转了数字.
那么算法将是:
sum = 0; for (i = 2; i <= 99; ++i) if (isPrime(i) && isPrime(reverse(i))) sum += i;