一个输出素数的程序,有错吗?

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:52:20
viod main()
{
int i,j;
scanf("%d",&j);
for(i=2,i<=j,++i);
if(j%i==0)
printf("%d is NO\n",i);
else
printf("%d is YES\n",i);
}

我这TC有问题。。。。。
我的意思是 输入一个数后 在这个数的范围内,输出是素数的!

什么乱七八糟的
viod main()
{
int i,j,k;
scanf("%d",&j);
for(i=2;i<=j;i++){
for(k=2;k<i;k++){
if(i%k==0) {
printf("%d is NO\n",i);
break;
}
}
if(k==i)
printf("%d is YES\n",i);
}
}

有很多格式错误,程序有问题,代码可改为如下,输出的是这个数的范围内的所有素数:
#include<stdio.h>
void main()
{
int i,j,k;
scanf("%d",&j);
printf("0到%d范围内的所有素数有:\n",j);
for(i=2;i<=j;i++)
{
for(k=2;k<i;k++)
{
if(i%k==0)
break;
}
if(i<=k)
{
printf("%3d",i);
}
}
}

你应该是要判断 j 是不是素数啊,不是判断 i 吧,程序错误不少啊,我改正了一下:
viod main()
{

int i,j;
scanf("%d",&j);

for (i = 2; i < j; ++i) {

if (j % i == 0) {
printf("%d is NO\n",j);
return;
}

} <