vc输出1-100内质数
#include<stdio.h>
int main()
{
int a,n,i,x,sum,t;
sum=0;
for(i=1,t=i;i<=100;i++)
{
for(a=i;t>=1;t--)
{
n=a%t;
if(n==0)
sum=sum+1;
}
if(sum<=2)
printf("%d ",t);
}
printf(" ");
return 0;
}
为什么不对??结果把1-100都列了出来,调试的时候发现t一直等于0??为什么?急 在线等
你的算法与众不同,但实现时尚有些错误,下面程序是按照你的程序作了修改,并能正确运行了。
#include<stdio.h>
int main()
{
int n,i,t,sum;
printf("%d ",2);
for(i=3;i<=100;i++)
{ sum=0;
for(t=i-1;t>1;t--)
{
n=i%t;
if(n==0)sum=sum+1;
}
if (sum==0){printf("%d ",i); }
}
printf("
");
return 0;
}
程序错在了for(i=1,t=i;i<=100;i++)
因为t=i是循环的初值,它赋为1后,就不变了(循环开始后它不变的)
热门标签: