當前位置:首頁 » 編程軟體 » 編程質數因子

編程質數因子

發布時間: 2023-03-04 21:01:27

『壹』 求助c語言編程題目質因數分解

因為使用for循環從小到大判斷其因數,而質數在由其組成的合數前面,所以如果i是n的因數,那麼i一定是質因數,而且質因數會從小到大輸出.

具體編程時,我們還應該使用n=n/i;,使for循環能快速滿足終止條件,節省運行時間.用i--;,處理有多個重復質因數的情況.用count來統計相同質因數的個數.

具體的解釋見注釋

#include<stdio.h>

int main(){

//n輸入的要分解的數,m前一個質因數,i循環變數

//flag第一個輸出的質因數的標志變數,count統計有幾個相同的質因數

int n,m,i,flag,count;

while(scanf("%d",&n)==1){//輸入一個數n,直到一次輸入的參數個數不等於1

flag=1;//第一次輸出的質因數的標志為1

m=0;//前一個質因數賦初值為0

count=1;//相同質因數個數為1

for(i=2;i<=n;i++){ //for循環從2到n

if(n%i==0){//如果n能被i整除,則i為質因數

if(m==i){//如果質因數與前一個質因數相同

count++;//相同質因數個數加一

}else{//如果質因數與前一個質因數不同

if(flag==1){//如果是第一次輸出

printf("%d",i);//輸出第一個質因數

flag=0;//把標志變數置0,後面輸出的質因數都不是第一個了

}else{//不是第一次輸出

if(count==1){//有一個不相同的質因數輸出

printf("*%d",i);//輸出不相同的質因數

}else{//有多個相同的質因數輸出

printf("^%d",count);//輸出相同的質因數個數

count=1;//重置相同質因數個數為1

printf("*%d",i);//輸出新的不同的質因數

}

}

}

m=i;//把當前質因數賦給存儲前一個質因數的變數m

n=n/i;//改變循環范圍n為n/i後的值

i--;//i減一,以處理有多個相同質因數的情況

}

}

if(count>1) printf("^%d",count);//如果有多個相同質因數,輸出其個數

printf(" ");//換行

}

return 0;

}

『貳』 c語言編程:求一個數的質因子

#include<stdio.h>
intmain()
{
inti,j,a[999999],x,y;
scanf("%d",&x);//讀取
y=x;
for(i=2,j=0;i<=x;i++)//遍歷質因數
{
if(x%i==0)//如果讀取的數能夠被質因數整除
{
a[j]=i;//將符合條件的質因數存到數組中
j++;//數組下標遞增
x/=i;//重新賦值
i=2;//重新遍歷
}
}
printf("%d=%d",y,a[0]);//輸出原數、等號、第一個質因數
for(i=1;i<j;i++)
printf("×%d",a[i]);//如果存在第二個質因數,則繼續輸出
return0;
}

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:743
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1007
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:713
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:875
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1122
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:347
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:225
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:871