#include<stdio.h>
#include<math.h>
int sushu(int a)
{
int i,I=0;
for(i=2;i<a;i++)
{
if(a%i==0)
I++;
}
if(I==0)
return 1;
else
return 0;
}
int main()
{
int n,m,a[100000][2],i,l,s=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i][0],&a[i][1]);
}
for(i=0;i<n;i++)
{
if(a[i][0]>=1 && a[i][0]<=m && a[i][1]>=1 && a[i][1]<=m)
{
for(l=a[i][0];i<=a[i][1];i++)
{
if(sushu(l))
s++;
else
s=s;
}
printf("%d\n",s);
s=0;
}
else
printf("no number\n");
}
return 0;
}
[ New Thread ]
Problem 4128 >> n=2为什么只循环一次 |
201803010111 @ 2019-05-13 09:34:08
|
201703120121 @ 2019-05-13 21:00:00
for(l=a[i][0];i<=a[i][1];i++)
{ if(sushu(l)) s++; else s=s; } 看这段代码。 是不是把 l 错写成 i 了 |
201703120121 @ 2019-05-13 21:03:03
另外,这个程序好像不怎么快,学下快速线性筛来筛取素数?
提示:1、素数的倍数不是素数;2、打表。 |