啊?
查看原帖
啊?
1267066
yi18600361898楼主2024/4/22 20:29

3个TLE的代码:

#include <bits/stdc++.h>
using namespace std;
int sushu(int a){             //质数筛
    for(int i=2;i<=a/2;i++){        
        if(a%i==0){
        	return 0;
		} 
    }
    return 1;
}

int main(){
	int n,ans,x=2;
	cin>>n;
	while(n!=0){
	    if(sushu(x)==1)  ans=x,n--;
	    x++;
	}
	cout<<ans;
    return 0;
}

加了特判的AC代码:

#include <bits/stdc++.h>
using namespace std;
int sushu(int a){                           //质数筛
    for(int i=2;i*i<=a;i++){        
        if(a%i==0){
        	return 0;
		} 
    }
    return 1;
}

int main(){
	int n,ans,x=5;
	cin>>n;
	if(n==1){
	    cout<<2;
	    return 0;
	}
	if(n==2){
	    cout<<3;
	    return 0;
	}
	n-=2;
	while(n!=0){
	    if(sushu(x)==1)  ans=x,n--;
	    x++;
	}
	cout<<ans;
    return 0;
}

为什么加完特判之后速度快那么多
TLE代码记录
AC代码记录

2024/4/22 20:29
加载中...