0017 分解质因数


问题描述:

  将一个正整数分解质因数,例如:输入90,输出:90=2*3*3*5

代码展示:

 1 #include 
 2 int isZhuShu(int n);
 3 int main(){
 4     int n,i=2,j;
 5     int a[10];
 6     int count=0;
 7     printf("请输入正整数:"); 
 8     scanf("%d",&n); 
 9     int temp = n;
10     for(i=2;temp!=1;){        //寻找符合的质因数 
11         if(isZhuShu(i)==1){
12             if(temp%i==0){
13                 a[count++] = i;
14                 temp /= i;
15             }else{
16                 i++;
17             }
18         }else{
19             i++;
20         }
21     }
22     printf("%d=",n);            //输出 
23     for(j=0; j){
24         if(j!=count-1){
25             printf("%d*",a[j]);
26         }else{
27             printf("%d",a[j]);
28         }
29     }
30     return 0;
31 }
32 int isZhuShu(int n){        //判断是否是质数 
33     int i=2;
34     for(i=2; i2; i++){
35         if(n%i==0){
36             return -1;
37         }
38     }
39     return 1;
40 }

运行截图:

相关