#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。