分解质因数问题:
将一个正整数分解质因数。例如:输入90,打印90=2*3*3*5
#include <stdio.h>
#include <stdbool.h>
int main(){
int num,j;
_Bool flag=1;
printf("请输入一个值:");
scanf("%d",&num);
printf("%d=",num);
for(j=2;j<num/2;j++){
if(num%j==0){
flag=0;
break;
}else{ //判断是否为质数,是的话,最大质因子为他本身
flag=1;
}
}
for(int i=2;i<num;i++){
while(flag!=1){ //此时num不是质数
if(num%i==0){ //num=90 45 9
printf("%d*",i); //得出最小质因子 2 5 3
num/=i; //num应该为商 45 9 3
break;
}else{
break;
}
}
}
printf("%d",num);//3
return 0;
}