求助这一道统计素数区间题C++,请问我的为什么编译错了?
小明喜欢研究素数,他想统计两个自然数之间的素数个数,现在他给定若干个区间,请你帮忙求出每个区间的素数个数。Input
第一行一个整数n
接下来n行,每行两个数a和b,表示开区间[a,b]
Output
N行,每行输出一个数,表示区间素数的个数
Sample Input
2
2 10
1 100
Sample Output
4
25
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
bool prime(int n,int a,int b)
{
for(int z=a; z<=b; z++)
{
for(int y=a; y<=sqrt(b); y++)
if(z%y==0)
return false;
return true;
}
}
int main()
{
int n,i,j,s=0,z,y;
int a,b;
scanf("%d",&n);
for(int m=1; m<=n; m++)
{
cin>>a>>b;
for(i=a; i<=b; i++)
if(prime(i))
s++;
printf("%d",s);
}
return 0;
}