问题描述
Description
给定区间[L, R] , 请计算区间中素数的个数。
Input
两个数L和R。
Output
一行,区间中素数的个数。
Sample Input
2 11
Sample Output
5
问题思路
- !!!注意
0,1
不是质数 - 简单版,必须从2判断到sqrt(n)来,看看是否有数字模等0
- 高配版:判断2之后,就可以判断从3到sqrt(n)之间的奇数了,无需再判断之间的偶数
代码实现
#include <iostream>
#include <cmath>
using namespace std;
bool isspuer(int t){
if(t<=1){
return false;
}
for(int i=2;i<=sqrt(t);i++){
if(t%i==0)
return false;
}
return true;
}
int main()
{
int a=2,b=11;
cin >> a >> b;
int ans = 0;
for(int i=a;i<=b;i++){
if(isspuer(i)){
// cout << i << endl;
ans++;
}
}
cout << ans << endl;
return 0;
}