描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围:
1≤n≤2×10 ^9+14
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1
输入:
180
输出:
2 2 3 3 5
#include <cmath> //sqrt()
using namespace std;
bool is(int m)//判断是否为质数!!!
{
for(int i = 2; i <= sqrt(m) ; i ++)
{
if(m % i == 0) return false;
}
return true;
}
int main()
{
int num ;
cin >> num;
int max = num;//暂存输入的值num
for(int i = 2 ; i <= sqrt(max) ; i ++) //先找出小于sqrt(num)的质因子
{
while(is(i) && num % i == 0)
{
cout << i << ' ';
num /= i;
}
}
if(num > sqrt(max)) cout << num