问题:验证“每个不小于6的偶数都是两个素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
使用语言:C.
输入:输入一个不小于6的偶数n。
输出:找出两个素数,使它们的和为n。只需要输出其中第一个素数最小的一组数据即可。
例:
输入 80
输出 80=7+73
#include <stdio.h>
int f(int m)
{
int i;
for(i=2;i<m;i++)//从2开始循环,以保证第一个素数是符合条件的最小素数。
{
if(m%i==0)
break;
}
if(i==m)//当为素数时,必有i=m,这时用if直接设置返回值。
{
return -1;
}
else
{
return 1;
}
}//定义一个判断“m”是不是素数的函数。
int main()
{
int n;
int i=3;
scanf("%d",&n);
for ( i=3;i<n;i++)
{
if(f(i)==-1&&i%2==1&&f(n-i)==-1&&(n-i)%2==1)
{
printf("%d=%d+%d\n",n,i,n-i);
break;
}
}
}
原文地址:https://www.cnblogs.com/ciarian/p/11930074.html
时间: 2024-11-02 09:17:24