C语言–分解质因数
直接安排代码:
#include <stdio.h>
int Judge(int x);
void Decomposition(int x);
int main()
{
int x , h;
scanf("%d",&x);//输入一个正整数 x
h = Judge(x);//对x进行判断
if(h != 1){
Decomposition(x);//不是,就分解质因数
}else{
printf("%d",x);//是直接打印
}
return 0;
}
int Judge(int x){//判断是否为质数
int i;
for(i = 2 ; i <= x/2 ; i++){
if(x % i != 0){
return 0;//不是,返回0
}
}
return 1;//是,返回1
}
void Decomposition(int x){//分解质因数
int i;
for(i = 2 ; i <= x ; i++){//从2开始一直找x的除数
while(x % i == 0){//找到一个满足条件的 i 时就一直除它直到不能被除尽
printf("%d",i);
x = x / i;//找到一个打印一个
if(x != 1){//如果x为1时,说明上一个数是满足条件的最后一个数,就不用打印 * 号了
printf("*");
}
}
}
}
测试结果: