描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
最后一个数后面也要有空格
输入描述: 输入一个long型整数
输出描述: 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入: 180
输出: 2 2 3 3 5
Solution
version1
#include<iostream>
#include<math.h>
using namespace std;
int main(){
long a,b;
cin>>a;
int i = 2;
b = a;
//尝试整除的数只需要达到平方根即可,无需再大
//再大可能算法因为规模过大超时
int maxi = sqrt(a);
while(a!=1){
if(a%i==0){
cout<<i<<" ";
a = a/i;
i = 1;
}
if(i == maxi){
cout<<a<<" ";
break;
}
i++;
}
}
Tips:尝试整除的数只需要达到平方根即可,无需再大,再大可能导致算法因为规模过大超时。