C 程序将一个数表示为两个素数之和。
问题
找出给定的数字是否可以表示为两个素数之和。
给定一个正整数N,我们需要检查数字N是否可以表示为两个素数之和。
解决方案
考虑下面给出的例子-
20可以表示为两个素数3和17、13和7的和。
20=3+7
20=13+7
算法
参考下面给出的将给定数字表示为两个素数之和的算法。
步骤1-输入要在运行时检查的数字。
步骤2-从i=2重复到(num/2)。
步骤3-检查i是素数。
Step4-如果i是素数,检查(n-i)是否是素数。
步骤5-如果(i)和(n-i)都是素数,则给定的数字可以表示为素数i和(n-i)的总和。
示例
以下是将给定数字表示为两个素数之和的C程序-
#include输出结果int Sum(int n); int main(){ int num, i; printf("输入号码: "); scanf("%d", &num); int flag = 0; for(i = 2; i <= num/2; ++i){ if (sum(i) == 1){ if (sum(num-i) == 1){ printf("\nThe given %d can be expressed as the sum of %d and %d\n\n", num, i, num - i); flag = 1; } } } if (flag == 0) printf("The given %d cannot be expressed as the sum of two prime numbers\n", num); return 0; } //检查一个数是否为素数 int sum(int n){ int i, isPrime = 1; for(i = 2; i <= n/2; ++i){ if(n % i == 0){ isPrime = 0; break; } } return isPrime; }
执行上述程序时,它会产生以下输出-
Run 1: 输入号码: 34 The given 34 can be expressed as the sum of 3 and 31 The given 34 can be expressed as the sum of 5 and 29 The given 34 can be expressed as the sum of 11 and 23 The given 34 can be expressed as the sum of 17 and 17 Run 2: 输入号码: 11 The given 11 cannot be expressed as the sum of two prime numbers
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语