C語言 · 分解質因數


問題描述
  求出區間[a,b]中所有整數的質因數分解。
輸入格式
  輸入兩個整數a,b。
輸出格式
  每行輸出一個數的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是從小到大的)(具體可看樣例)
樣例輸入
3 10
樣例輸出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
提示
  先篩出所有素數,然后再分解。
數據規模和約定
  2<=a<=b<=10000
 
 1 #include<stdio.h>
 2 int main(){
 3     int a,b,i;
 4     int state;//狀態 
 5     int c;//記錄當前的值 
 6     scanf("%d%d",&a,&b);
 7     for(i=a;i<=b;i++){
 8         state=1;
 9         for(int j=2;j<i;j++)
10             if(i%j==0)  //若非質數讓state為0 
11             {   
12                 state=0;  
13                 break;  
14             }  
15         if(state==1){//若為質數 
16             printf("%d=%d\n",i,i);
17         }else if(state==0){
18             printf("%d=",i);
19             int j=2;
20             c=i;
21             while(1){
22                 while(c%j==0){
23                     printf("%d",j);
24                     c=c/j;
25                     if(c!=1)
26                         printf("*");
27                 }
28                 if(c==1){
29                     printf("\n");
30                     break;
31                 }
32                 j++;
33             }
34         }
35     }
36 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM