供参考:
#include<stdio.h>
int isPrime(int n)
{
int i;
if(n<=3) return n>1;
for(i=2;i*i<=n;i++)
if(n%i == 0) return 0;
return 1;
}
int main()
{
int i,n,flg=0;
scanf("%d",&n);
if(n<4 || n>4000 || n%2!=0){
printf("INPUT ERROR\n");
return 1;
}
for(i = 2; i <= n/2; i++){
if(isPrime(i) && isPrime(n-i)){
printf("%-d=%-d+%-d\n",n,i,n-i);//输出
flg=1;
break;
}
}
if(flg==0)printf("it is wrong.\n");
return 0;
}
这个挺简单的,写一个判断素数的函数,再写一个求某整数所有因子的函数就可以了。
bool pris(int n)
{//素数
if(n<2) return false;
for(int i=2; i<n; i++)
{
if(n%i==0) return false;
}
return true;
}
int main()
{
int n,i;
scanf("%d",&n);
if(n >= 4)
{
bool bFind = false;
for(i=2;i<=n/2;i++)
{
int m = n-i;
if(pris(m) && pris(i))
{
printf("%d=%d+%d",n,i,m);
bFind = true;
break;
}
}
if(!bFind)
printf("INPUT ERROR");
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632