4、(可选,但还是建议做一下)素数的有关问题。
(1)首先读懂并修改代码中存在的错误;
(2)去掉isPrime中的flag变量,用return语句替代。
(3)歌德巴赫猜想是指任意的一个偶数都可以拆分为两个素数的和,修改main函数,使之能接受用户输入的偶数,然后输出两个素数,这两个素数的和等于用户输入的数值。
#include
int isPrime(int x){
/*
函数用来判断x是否为素数,例如isPrime(5)返回1, 表示5为素数.
isPrime(9)返回0, 表示9为合数(非素数)
*/
int i;
int flag=1;
for (i=2; i<=x-1; i++){
if (x%i==0)
flag=0; break;
}
return flag;
}
void main(){
int k;
for (k=2; k<=20000; k++)
if (isPrime(k)==1)
printf("%d是素数\n",k);
}