I/O.6 质数因子
一、题目要求
描述: 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围:1≤n≤2×10^9+14
输入描述: 输入一个整数
输出描述: 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例
输入:180
输出:2 2 3 3 5
二、题解
#include<iostream>
#include <math.h>
using namespace std;
int main(){
int n=0;
cin>>n;
for(int i=2;i<=sqrt(n);i++)
//后续能被整除的也一定是质数,若是合数,则合数的质因子肯定出现在之前
while(n%i == 0)
{
cout<<i<<" ";
n/=i;
}
if(n-1) cout<<n<<" ";
return 0;
}