翻了下题解,同样的方法为什么MLE?
  • 板块P3912 素数个数
  • 楼主fake_
  • 当前回复12
  • 已保存回复12
  • 发布时间2022/4/9 22:43
  • 上次更新2023/10/28 04:08:16
查看原帖
翻了下题解,同样的方法为什么MLE?
573260
fake_楼主2022/4/9 22:43
#include<bits/stdc++.h>
using namespace std;
int pd[100000000];
int main(){
    int b,c,a=0;b=0;
    cin>>c;
    for(int i=1;i<=c;i++) {
    	if(i<=1||pd[i]==1) continue;//如果已标记为合数则跳过 
    	for(int j=1;j<=10;j++) {//判断这个数的因数个数 
    	if(b>2) break;//如果因数大于两个就跳出 
    	if(i%j==0) b++;	
		}
			if(b<=2) {
				for(int k=i+i;k<=c;k+=i){//将筛出来的质数的倍数标记为合数 
					pd[k]=1;
				}
				a++;
			}
		b=0;
		}
		cout<<a;
		
		return 0;
	}

   
   
   
   
     
2022/4/9 22:43
加载中...