素数密度2
2024-02-17 10:40:09
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,cnt = 0,m;
	bool vis[4000001] = {0};
	int pn[4000001];
	cin>>n>>m;
	vis[1] = 1;
	for(int i = 2;i<=n;i++){
		pn[i] = cnt;
		if(vis[i]){
			continue;
		}
		else{
			cnt++;
			for(int j = i+i;j<=n;j+=i){
				vis[j] = 1;
			}
		}
		pn[i] = cnt;
	}
	for(int i = 0;i<m;i++){
		int x,y;
		cin>>x>>y;
		cout<<pn[y]-pn[x-1]<<endl;
	}
	return 0;
}
全部评论 2
说的好,但是只需要i遍历到根号n就行了
到时候再遍历一次录入pn2024-02-17 来自 广东
0#include<bits/stdc++.h>
using namespace std;
int main(){
string x;
int sum = 0;
cin>>x;
for(int i = 0;i<x.length();i++){
x[i]-='0';
sum*=10;
sum+=x[i];
}
cout<<sum;
return 0;
}2024-02-17 来自 浙江
0













有帮助,赞一个