题目
描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
最后一个数后面也要有空格
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入:
180
输出:
2 2 3 3 5
代码
C++
#include<bits/stdc++.h>
using namespace std;
int main()
{
long m;
while(cin>>m)
{
for(long i=2;i*i<=m;i++)
{
while(m%i==0)
{
cout<<i<<" ";
m/=i;
}
}
if(m>=2) cout<<m<<" ";//如果m=1,则while循环中刚好被质数分解完,如果大于1,说明没有被分解完,m就是那最后一个质数
//同时,这句也可以应对输入为质数的特殊情况
cout<<endl;
}
}
Python
m = int(input())
i = 2
while(i*i<=m):
while(m%i==0):
print(i,end=' ')
m/=i
i= i + 1
if(m>=2):
m = int(m)
print(m,end=' ')
print('\n')