0017 分解質因數
阿新 • • 發佈:2021-11-25
問題描述:
將一個正整數分解質因數,例如:輸入90,輸出:90=2*3*3*5
程式碼展示:
1 #include<stdio.h> 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<count;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; i<n/2; i++){ 35 if(n%i==0){ 36 return -1; 37 }38 } 39 return 1; 40 }
執行截圖: