关于输入2个数字,求之间的所有素数

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:44:52
#include "stdio.h"
#include<math.h>
main()
{
int a,b,q,w,e;
printf("input two numbers:\n");
scanf("%d%d\n",&a,&b);

for(q=a;a<=b;a++)
{w=sqrt(q);
for(e=2;e<=w;e++)
if(q%e==0)break;
if(e==w+1)
printf("%d\n",q);
}

}
这样子写错在哪里了?为什么输入2个数字后没反应?

还有关于谭浩强的那本书中有一题是求100-200之间的所有素数,
#include<math.h>
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(“%d”,m);
n=n+1;}
if(n%n==0)printf(“\n”);
}
printf(“\n”);
}
这样子算出来的素数和我自己写的不一样,本来以为是我自己弄错了,所以在网上找了一个例子,结果和我写的一样,难道谭浩强写错了?

scanf("%d%d\n",&a,&b);
确定需要在读入完两个数字以后再读入一个空行么?把\n去掉

for(q=a;a<=b;a++)
循环变量是q还是a?是q的话为什么要a<=b和a++?换成q吧