题目
将一个正整数分解质因数。例如:输入90,打印出90=233*5。
分析
将需要分解的数字从2开始遍历,则分解的结果都会是质数。需要分解的数字是每一次上次分解之后的结果。比如,90有质因数2,之后用45分解质因数,会得到15,15再去分解质因数。
实现
Python实现
n=int(input("请输入需要分解的数字:"))
print("{} =".format(n),end=' ')
while n>1:
for i in range(2,n+1):
if n%i==0:
n=int(n/i)
if n==1:
print(i)
else:
print("{} *".format(i),end=' ')
break
C++实现
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main(){
printf("请输入一个数字来分解质因数:");
int n; cin>>n;
printf("%d = ",n);
while(n>1){
for(int i=2;i<n+1;i++){
if(n%i==0){
n=n/i;
if(n==1) printf("-",i);
else printf("- * ",i);
break;
}
}
}
return 0;
}