C 语言范例 - 计算一个数可为两个素数之和
计算一个数为两个素数之和
/** * file: main.c * author: 简单教程(www.twle.cn) */ #include <stdio.h> int is_prime(int n); int main() { int n, i, flag = 0; printf("输入正整数: "); scanf("%d", &n); for(i = 2; i <= n/2; ++i) { // 检测判断 if (is_prime(i) == 1) { if ( is_prime(n-i) == 1) { printf("%d = %d + %d\n", n, i, n - i); flag = 1; } } } if (flag == 0) printf("%d 不能分解为两个素数\n", n); return 0; } // 判断素数 int is_prime(int n) { int i, isPrime = 1; for(i = 2; i <= n/2; ++i) { if(n % i == 0) { isPrime = 0; break; } } return isPrime; }
编译运行范例,输出结果如下
$ gcc main.c && ./a.out 输入正整数: 106 106 = 3 + 103 106 = 5 + 101 106 = 17 + 89 106 = 23 + 83 106 = 47 + 59 106 = 53 + 53