将一个正整数分解成质因数。如90=2*3*3*5。
分析:对n进行分解质因数,找一个最小质数(素数)k。
1.如果n>k,n也能被k整除,打印出k的值,n的值改为n/k
2.如果n不能被k整除,k++
3.如果n=k,说明分解质因数过程结束,打印输出即可。
#include <stdio.h>
void main()
{
int n,k;//n,用户输入的正整数;k,最小质数(素数)
printf("请输入一个正整数\n");
scanf("%d",&n);
printf("%d=",n);
for(k=2;k<=n;k++)
while(n!=k)
{
if(n%k==0)
{
printf("%d*",k);
n/=k;
}
else break;
}
printf("%d\n",n);
}
运行结果:
请输入一个正整数
90
90=2*3*3*5
请按任意键继续. . .
可能你会觉得,这分解质因数体现在哪?你想想看,2是最小质数,如果一个数连2都不能整除,那么2的倍数他也都不能整除了,因为从小到大除,小的都除不尽了,大的还会除尽吗?