第1个回答 2014-03-27
把你的程序改一下就行了。。
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c;
for(a=3;a<=100;a++)
{
for(b=2;b<=sqrt(a);b++)
{
if (a%b==0)
{
break;
}
}
if(b>sqrt(a)) printf("%d\t",a);
}
getch();
}
第2个回答 2014-03-27
你的printf语句应当是判断a是个素数时才执行,而不是象程序中放到b循环中每测试一个因数就执行一遍,所以请将printf语句搬移到b循环外,并且加条件:if ( b>sqrt(a) ) printf("%d\t",a);
追问谢了。
第3个回答 2014-03-27
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c;
for(a=3;a<=100;a++)
{
for(b=2;b<=sqrt(a);b++)
{
if (a%b==0)
break;
if(b>sqrt(a))
printf("%d\t",a);
}
}
}
第4个回答 2014-03-27
楼主程序改下就好了
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c;
for(a=2;a<=100;a++)
{
for(b=2;b<=sqrt(a);b++)
{
if (a%b==0)
break;
//printf("%d\t",a);
}
if(b>sqrt(a))
printf("%d\t",a);
}
}本回答被提问者采纳