题目大意
给定一个区间 [l,r] ,求此区间内有多少个素数(也称质数)。
解题方法
step 1
首先我们得了解素数(也称质数)是神马玩意(良心题,已知素数的定义):
如数 x 满足以下几个条件,则称 x 为素数:
- x不能被区间 [l+1,r−1] 内整除;
- x不小于 1;
- x为整数。
step 2
由于本题数据规模不大,所以我们可以—— 暴力!!
先模拟区间 [l,r] ,再判断每次遍历的数是否为素数。
Code:
cpp:
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
bool isp(int n)
{
if(n==2)return true;
if(n==3)return true;
if(n==5)return true;
if(n==7)return true;
for(int i=2;i<n;i++)
{
if(n%i==0)return false;
}
return true;
}
int main()
{
cin>>a>>b;
for(int i=a;i<=b;i++)
{
if(isp(i))c++;
}
cout<<c;
}
Tips
注意:为了保证准确性,可以特判某些数,但是2最好特判
最后的最后
点个赞呗!!!!!!!