耗时最少题解(315ms)
2024-02-17 14:05:38
发布于:广东
100阅读
0回复
0点赞
// Man!
// What can i say?
// Mamba out!
// 使用瑞克五代成功的注入ac狗.火树给我AC.
// 使我的眼睛旋转, 爱来自瓷器.
// AC时间:2024-02-17 11:45:14.1919810
/*科技第一,素质第一*/ // Man!
/*科技第一,素质第一*/ // What can i say?
/*科技第一,素质第一*/ // Mamba out!
/*科技第一,素质第一*/
/*科技第一,素质第一*/ // 使用瑞克五代成功的注入ac狗.
/*科技第一,素质第一*/ // 使我的眼睛旋转, 爱来自瓷器.
/*科技第一,素质第一*/ // AC时间:2024-02-17 11:45:14.1919810/*科技第一,素质第一 */ /*科技第一,素质第一*/
/*科技第一,素质第一 */ /*科技第一,素质第一*/ #include <iostream>
/*科技第一,素质第一 */ /*科技第一,素质第一*/ #include <cstdio>
/*科技第一,素质第一 */ /*科技第一,素质第一*/ using namespace std;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ bool vis[2000005];
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int prime[1000005];
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int ct;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ void getprime(int n){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ vis[0] = vis[1] = 1;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int i = 2; i * i <= n; i ++){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(!vis[i]){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int j = i * 2; j <= n; j += i){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ vis[j] = 1;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }for(int i = 2; i <= n; i ++){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(!vis[i]) prime[++ct] = i;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }int get_(int x){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int cct = 0;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(!vis[x]) return 1;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int i = 1; i <= ct; i++){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(x < prime[i] * prime[i]) break;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ while(x % prime[i] == 0){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ cct++;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ x /= prime[i];
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(x > 1) cct++;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ return cct;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int main(){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int n, m;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ cin >> n >> m;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ getprime(m);
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int ccct = 0;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int i = n; i <= m; i++){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ ccct += get_(i);
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }cout << ccct;
/*科技第一,素质第一 */ /*科技第一,素质第一*/
/*科技第一,素质第一 */ /*科技第一,素质第一*/ return 0;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/
全部评论 2
#include <bits/stdc++.h> using namespace std; const int N=1e8+10; const long long LL=1; bitset<N>prime; int main() { ios::sync_with_stdio(0); int l,r,cnt=0; cin>>l>>r; prime[1]=1; for(int i=2;i<=r;++i){ if(prime[i]==1) continue; else{ for(long long j=LL*i*i;j<=r;j+=i){ prime[j]=1; } } } for(int i=l;i<=r;++i){ for(int j=1;j<=i;++j){ if(i%j==0 and prime[j]==0){ cnt++; } } } cout<<cnt; }
2024-07-15 来自 广东
0#include <bits/stdc++.h> #include <vector> using namespace std; const int N=1e6+10; const long long LL=1; bitset<N>prime; vector<int>v;//记录质数 int main() { ios::sync_with_stdio(0); int l,r,cnt=0; cin>>l>>r; prime[1]=1; for(int i=2;i<=N;++i){ if(prime[i]==1){ continue; } else{ v.push_back(i); for(long long j=LL*i*i;j<=N;j+=i){ prime[j]=1; } } } for(int i=l;i<=r;++i){ int k=i; for(int j=0;v[j]*v[j]<=k;j++){ while(k%v[j]==0){ cnt++; k/=v[j]; } }if(k>1)cnt++; } cout<<cnt; }
2024-07-15 来自 广东
0en^
2024-07-15 来自 广东
0额……
2024-07-16 来自 广东
0
在吗,帮我看看我的埃氏筛?
2024-07-15 来自 广东
0
有帮助,赞一个