质数因子
2017-06-01 09:12
225 查看
#include<bits/stdc++.h> using namespace std; bool isPrime(long n) { if(n==1)return false; for(long i=2; i*i<=n; i++) if(n%i==0)return false; return true; } int main() { long a; while(cin>>a) { for(long i=2; i<=a; i++) { if(a%i==0&&isPrime(i)) { cout<<i<<" "; a/=i; i--; } } } return 0; } //降低时间复杂度 #include<bits/stdc++.h> using namespace std; bool isPrime(long n) { if(n==1)return false; for(long i=2; i*i<=n; i++) if(n%i==0)return false; return true; } int main() { long a; while(cin>>a) { if(isPrime(a)) { cout<<a<<" "; continue; } for(long i=2; i*i<=a; i++) { if(a%i==0&&isPrime(i)) { cout<<i<<" "; a/=i; i--; } } if(isPrime(a)) { cout<<a<<" "; } } return 0; }