急!求任意两数间的素数,这个程序哪错了啊?为什么运行不出来呢?
#include<stdio.h>
#include<math.h>
int main()
{
int m,i,a,b,leap;
scanf("%d %d",&a,&b);
if(a>b)
{a=a+b;
b=a-b;
a=a-b;
}
leap=0;
for(m=a;m<=b;m++)
{
for(i=2;i<=sqrt(m);i++)
{
if(m%i==0)
break;
else
leap=1;
}
if(leap)
printf("%d ",m);
}
printf("\n");
return 0;
}
[解决办法]
你的判断根本不对!
m不能被i整除时就一定是素数么?
#include<stdio.h>#include<math.h>int main(){ int m,i,a,b,leap; scanf("%d %d",&a,&b); if(a>b) { a=a+b; b=a-b; a=a-b; } leap=0; for(m=a;m<=b;m++) { for(i=2;i<=sqrt(m);i++) { if(m%i==0)//m能被i整除则一定不是素数 break; } if(i>sqrt(m))//判断是否判断了所有的i,如果是则说明是素数 printf("%d ",m); } printf("\n"); return 0;}
[解决办法]
scanf("%d %d",&a,&b);
先说这个,为什么不将输入直接扫给a b啊
[解决办法]