题目
每个合数都可以写成几个质数相乘的形式,这些质数就是这个合数的质因数,利用代码对一个给定的合数进行分解成质因数,比如435234=251*17*17*3*2。
知识点
对合数m进行分解质因数,首先需要找到最小的质数n(注意:1不是质数),然后依次按照下面步骤进行:
- 若m正好是质数,则分解质因数流程结束,打印即可;
- 若m>n,m不能整除n,则用n+1作为n的值,重复进行第一步流程;
- 若m可以整除n,则可以打印出n的值,同时用m除以n的商作为新的数m,重复进行上一步;
实现代码
/*
==========================
Name : 20200620.c
Author : 折腾的小大叔
Version :
Copyright : Your copyright notice
Description :
==========================
*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n,i;
printf("please input a number:\n");
scanf("%d",&n);
printf("The result:%d=",n);
for(i=2;i<=n;i++){
while(n!=i){
if(n%i==0){
printf("%d*",i);
n=n/i;
}else{
break;
}
}
}
printf("%d",n);
}
运行结果

往期推荐
C语言每日一练18——递归方法整数逆序
C语言每日一练17——递归方法求阶乘n
C语言每日一练16——指针的指针使用