#include<stdio.h>
int prime(int n)
{
int k,d;
k=sqrt(n);
if(n==1)
return 0;
if(n==2)
return 1;
for(d=2;d<=k;d++)
{if(n%d==0)
return 0;
break;}
if(d>k)
return 1;
}
int main()
{
int a,b,c,d,n;
printf("請輸入一個偶數");
scanf("%d",&n);
if(n==2)
printf("\n該值無法分解成兩個質數");
for(a=1;a<n;a++)
{ b=n-a;
c=prime(a);
d=prime(b);
if(c==1&&d==1)
printf("\n%d=%d+%d\n",n,a,b);}
return 0;
}
uj5u.com熱心網友回復:
依樓主思路,修改如下:#include <stdio.h>
#include <math.h>
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
int main(int argc, char* argv[])
{
int a,b,c,d,n;
printf("請輸入一個偶數(n>3):");
scanf("%d",&n);
if(n<3 || n%2!=0)
{
printf("該值不符合輸入要求.\n");
//return 0;
}
else
{
for(a=2;a<=n/2;a++)
{
b=n-a;
c=prime(a);
d=prime(b);
if(c==1&&d==1)
printf("%d=%d+%d\n",n,a,b);
}
}
system("pause");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226545.html
標籤:C語言
下一篇:麻將游戲自動打牌AI演算法
