意思是求素数,可是我的输出不对

img


#include<stdio.h>
int main()
{
int l,r,i,a=1,h=0;
scanf("%d%d",&l,&r);
for(i=l;i<r;i++){
a++;
if((i+1)%a!=0&&a<=(i+1))
h+=1;

}
printf("%d",h);
return 0;

}

内部的 for循环计算这个数是不是 素数。

外层的遍历这个区间。。

这个题目的要求是计算 某个区间中素数的个数,那你不就是需要一个for来遍历区间,另一个for判断是不是素数吗

这不科学啊,求素数至少得两重循环吧?

for(i=l;i<=r;i++)

#include<stdio.h>
int main()
{
int l,r,i,a=0,h=0;
scanf("%d%d",&l,&r);
for(i=l;i<=r;i++){
a=0;
for(int j=2;j<i;j++){
if(i%j==0){
a++; // 素数个数加1
}
}
if(a==0) ++h;
}
printf("%d",h);
return 0;
}