#include <stdio.h>
int main()
{int m,x,y;
int prime(int a);
printf("please input a data:\n");
scanf("%d",&m);
while((m%2)!=0||m<6) //
{
printf("error,please input again!\n");
scanf("%d",&m);
}
for(x=1;x<m/2+1;x++)
{y=m-x;
if(prime(x)&&prime(y))
printf("%d=%d+%d\n",m,x,y);
}
}
int prime(int a)//素數判定函式
{int i,z=1;
while(a<=0)
{printf("please input a data again!\n");
}
if(a==1)
z=0;
else if(a==2)
z=1;
for(i=2;i<a;i++)//必須要有continue陳述句跳出本次回圈使得所有的i都試過了,n不能被整除,否則z=0;
{
if(a%i!=0)
continue;
z=0;
}
return(z);
}
uj5u.com熱心網友回復:
暈,prime函式如果a<=0豈不死回圈?判斷素數不用那么復雜
int prime(int a) {
int i;
if(a<=1) return 0;
for (i=2; i<a; i++) {
if (a%i == 0) return 0; //能整除說明不是素數,直接回傳0 //或者用break退出回圈
}
return 1; //否則回傳1 //或者如果上面用break,這里就return (i==a);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110142.html
標籤:新手樂園
上一篇:C語言建專案出錯
