把10到1000之间满足以下两个条件的数,存到result.txt文件中!
把10到1000之间满足以下两个条件的数,存到result.txt文件中1、是素数。
2、它的反数也是素数,如:123的反数是321。
/*把10到1000之间满足以下两个条件的数,存到result.txt文件中! 把10到1000之间满足以下两个条件的数,存到result.txt文件中 1、是素数。 2、它的反数也是素数,如:123的反数是321。*/ #include <stdio.h> int IsPrime(int n); int GetAnti(int n); int SaveResultToFile(FILE *fSave); int main(void) { FILE *fSave = NULL; fSave = fopen("result.txt", "wt"); //打开文件句柄 if (NULL == fSave) { printf("文件打开失败!\n"); return -1; } SaveResultToFile(fSave); fclose(fSave); //关闭文件句柄 printf ("小妹妹, 完成了\n"); return 0; } /* *IsPrime 判断是不是素数 *@n 要判断的数 *return 返回1, 是素数, 返回0, 不是素数 */ int IsPrime(int n) { int i; //i小于2, 或者i为偶数且不为2的, 都不是素数 if (2 == n) return 1; if (0 == n % 2 || n < 2) return 0; for (i = 2; i <= n / 2; ++i) { if (0 == n % i) return 0; } return 1; } /* *GetAnti 求逆数 *@n 要求逆的数 *return 返回结果 */ int GetAnti(int n) { int result; for (result = 0; n; n /= 10) { result = result * 10 + n % 10; } return result; } /* *SaveResultToFile 保存结果到result.txt文件 *@fSave 文件指针 *return 成功1, 失败0 */ int SaveResultToFile(FILE *fSave) { int i, j; for (i = 10; i <= 1000; ++i) { if (IsPrime(i)) { j = GetAnti(i); if (IsPrime(j)) { //printf("%d\n", i); fprintf(fSave, "%d\n", i); //输出到文本 } } } return 1; }