描述:
输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5)
数据范围:
输入描述:输入一个整数
输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:
180
输出:
2 2 3 3 5
#include <iostream>
using namespace std;
int main() {
long int n;
while(cin>>n){
for(int i=2;i*i<=n;i++){
if(n%i==0){
cout<<i<<" ";
n=n/i;
i--;
}
}
if(n>1) cout<<n<<" ";
}
}
// 64 位输出请用 printf("%lld")
思想: 一直找n的质因子,找到一个就除以这个质因子变成新的n,继续从这个质因子开始找质因子,直到找不到。