需要避免的问题:
1.过大的纯质数 i<=sqrt(input);
2.不要进行无意义的循环 a=1时就退出循环;
int main() { long a,b; cin>>a; b=sqrt(a); //避免纯质数过大 for(long i=2;i<=b&&a!=1;i++)//不做无意义的循环 { while(a%i==0) { a/=i; cout<<i<<" "; } } if(a-1) cout<<a<<" "; return 0; }
需要避免的问题:
1.过大的纯质数 i<=sqrt(input);
2.不要进行无意义的循环 a=1时就退出循环;
int main() { long a,b; cin>>a; b=sqrt(a); //避免纯质数过大 for(long i=2;i<=b&&a!=1;i++)//不做无意义的循环 { while(a%i==0) { a/=i; cout<<i<<" "; } } if(a-1) cout<<a<<" "; return 0; }