
题目(Description):
输入一个大于等于6的正偶数,将其拆分成两个素数(质数)的和,比如12=5+7,20=3+17。
素数(质数):除了1和本身外没有其他因子的数,比如2、3、5、7、11、13 … 一般规定1不是素数。
要求:编写一个求素数的函数。
输入(input ):
一个大于等于6的正偶数
输出(Output):
(1)如果输入的是奇数或小于6的偶数,则输出"input an even num (>=6)"(首字母大写,单词间一个空格,括号内无空格,没有句号".")
(2)如果是合法输入(一个大于等于6的正偶数),则输出两个素数且满足它们的和是输入的偶数
要求:小素数在前,大素数在后;且是所有可能拆分中,有最小素数的那一组。
比如:20=3+17 且 20=7+13,则输出3+17(中间没有空格),因为这一组有满足条件的最小素数
提示(Hint):
分别编写prime 和 main 函数,用prime 函数实现素数判断。
int prime(int y)
{
如果y是素数则返回1
否则返回0
}
示例1(Sample):
输入(input):
20
输出(Output):
3+17
示例2(Sample):
输入(input):
33
输出(Output):
input an even num (>=6)
#include
#include
int IsPrime(int n)
{
int i;
if (n <= 1)
return 0;
for (i = 2; i <= (int)sqrt(n); i++)
if (n % i == 0 && n != 2)
return 0;
return 1;
}
int main()
{
int n,i;
scanf("%d",&n);
if (n % 2 != 0 || n < 6)
printf("input an even num (>=6)");
else {
for (i = 1; i <= n; i++)
if (IsPrime(i) && IsPrime(n - i))
break;
printf("%d+%d",i,n - i);
}
return 0;
}
总结以上是内存溢出为你收集整理的C语言偶数拆分全部内容,希望文章能够帮你解决C语言偶数拆分所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)