判断一个数是否是素数,程序运行错误,我刚学,找不到哪里错了

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:16:38
#include<stdio.h>
void main()
{int n,i;
scanf("%d",&n);
for(i=2;i<n;i++)
if(n%i==0)
printf("%d is good\n",n);
else
printf("%d is not good\n",n);
}

#include"stdio.h"
main()
{int x,i;
printf("输入一个数字");
scanf("%d",&x);
for(i=2;i<x;i++)
if(x%i==0) break;
{if(i>=x) printf("YES\n");
else printf("NO\n");
}
}

1、main函数必须返回int把"void"改为'int'或干脆不写
2、你程序的思想有问题,每次执行都会打一次结果
3、程序不够优化i小于根号n即可
4、最好在结尾加一句scanf("%d",&n);否则你看不到结果
1是语法错误 2是思想错误 3是优化错误 4以后就不用了
最后讲一句“not good”是素数
修改后如下:
#include<stdio.h>
#include<math.h>//4
int main()//1
{int n,i;
scanf("%d",&n);
for(i=2;i<sqrt(n);i++)//3
if(n%i==0)
{printf("%d is good\n",n);
scanf("%d",&n);//4
return 0;}//2
printf("%d is not good\n",n);
scanf("%d",&n);//2
}
写这么多