69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
for(i=2;i<=a;i++)
{
m=1;//m在这儿就正确
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}
return 0;
}
#include<stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
for(i=2,m=1;i<=a;i++)//m在这里就不对
{
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}
return 0;
}
//第二个代码改了一下
#include<stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
printf("1 ");
for(i=2;i<a;++i) //m在for中只是在开始的时候初始化为1
{
m=1;//每次初始为1
for(j=2;j*j<a;j++) //此处为j*j<=a
if(i%j==0)
m=0;
if(m)
printf("%-4d",i);
}
system("pause");
return 0;
}
#include <stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
for(i=2,m=1;i<=a;i++,m=1)//m=1加在这里,与加在循环体里,效果是一样的
{
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}
fflush(stdin);
getchar();
return 0;
}