题目描述
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
输入
输入一个正整数n(2<=n<=2000)。
输出
从小到大输出n的所有质因子,每两个数之间空一格。
做题思路:
从二到nfor循环依次除以n,直到有数整可以被n整除,这个数就是n的分解因子,之后n变为n除以整数的积,之后重复for循环直到n为1。
#include<stdio.h>
int main()
{
int n,k;
scanf("%d",&n);
while(n!=1)//循环结束条件n=1;
{
for(int i=2;i<=n;i++)
{
if(n%i==0)//判断是否被整除
{
printf("%d ",i);
n=n/i;
break;//可以被整除就结束这个循环,求下一个分解因子
}
}
}
return 0;
}
运算结果:
20
2 2 5
--------------------------------
Process exited after 1.796 seconds with return value 0
请按任意键继续. . .