90分,第八个点TLE。
查看原帖
90分,第八个点TLE。
416184
Rosalind7楼主2021/11/4 20:15
#include<iostream>//P1075 [NOIP2012 普及组] 质因数分解 
#include<cmath>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int l=0,ans=0;
	
	if(n%2==0){
		if(n==4){
			cout<<"2"<<endl;
			return 0;
		}
		else{
			for(int i=2;i<=sqrt(n);i+=2){
				if(n%i==0)
	        	l=n/i;
	        	
	        	for(int h=3;h<=l-1;h+=2){
			    if(l%h==0)break;
		    	else ans++;
	        	}
	        	
				if(ans==(l-3)/2){
		    	cout<<l<<endl;
		    	return 0;
		    	}
		    	else ans=0;
	        }
    	}
    }
	
	if(n%2==1){
		for(int i=3;i<=sqrt(n);i+=2){
			if(n%i==0)
        	l=n/i;
        	
        	for(int h=3;h<=l-1;h+=2){
		        if(l%h==0)break;
	        	else ans++;
        	}
        	if(ans==(l-3)/2){
	       	cout<<l<<endl;
	       	return 0;
	    	}
	    	else ans=0;
	    }
	}
	return 0;
}

看了眼输入1999999874输出999999937(那又有什么用呢还不是改不出来

不知道怎么优化了orz。

2021/11/4 20:15
加载中...