良心题
查看原帖
良心题
1343228
lfynbklsKNYYDS888666楼主2024/12/6 20:41

题目大意

给定一个区间 [l,r][l,r] ,求此区间内有多少个素数(也称质数)。

解题方法

step 1

首先我们得了解素数(也称质数)是神马玩意(良心题,已知素数的定义):

如数 xx 满足以下几个条件,则称 xx 为素数:

  • xx不能被区间 [l+1,r1][l+1,r-1] 内整除;
  • xx不小于 11
  • xx为整数。

step 2

由于本题数据规模不大,所以我们可以—— 暴力!!

先模拟区间 [l,r][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

注意:为了保证准确性,可以特判某些数,但是22最好特判

最后的最后

点个赞呗!!!!!!!

2024/12/6 20:41
加载中...