導航:首頁 > 編程語言 > 遞歸分解質因數c程序

遞歸分解質因數c程序

發布時間:2025-01-04 06:42:26

⑴ 用java編程 將一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。

將一個正復整數分解質因數。制例如:輸入60;列印出2*3*5*2

演算法實現構思:

1、用Scanner實現輸入一個正整數n

2、用一個for循環遍歷一個從 k=2開始查找到k<=n的數

3、如果 n%k==0的時候,輸出k的值

4、然後把n的值遞歸一下,即 n=n/k

5、這個時候要把for循環重新執行,即再定義k=2

下面是實現代碼

上面是後來整理的構思以及代碼實現,一開始拿到這個題目,就立馬去做了,可是馬上掉進了各種各樣的坑,我覺得以後做演算法題先把做題思路想好,從部分到整體,不然一道簡單的演算法題就要耗掉很多時間。

⑵ C語言編寫:求2-100中,每個數的質因子

#include <stdio.h>
#include <math.h>

void fun(int num) /* 該函數輸出num的因數分解表達式 */
{
int flag = 0 ; /* flag 表示找到了num的一個質因數 */
int i;
int have_factor=0; /* have_factor 表示num有沒有質因數 */
int root;

do
{
flag=0;
root = sqrt(num); /* root 表示查找num的質因數的最大可能值 */
for(i=2;i<=root;i++)
{
if(num%i==0) /* 找到了num的一個質因數 */
{
if(have_factor==0) { printf("\n%d = %d * ",num,i); }
else { printf("%d * ",i); }
num/=i;
flag=1;
have_factor=1;
break;
}
}
}while(flag==1); /* 如果num還能繼續分解,則繼續循環,否則退出循環 */

if(have_factor==1) { printf("%d",num); }
else { printf("\n\n%d is a prime number!\n",num);}

return;
}

main()
{
int k;
for(k=2;k<=100;k++)
{
fun(k);
}

getch();
}

⑶ 用JAVA中遞歸思想編寫程序:分解質因數例如90=2×3×3×5

按照自你的要求編寫的Java程序如下:

importjava.util.Scanner;
publicclassCCT{
publicstaticvoidf(intn,intm){
inti=2;
if(n<2)return;
while(!(n%i==0)){
i++;
}
if(m==1)System.out.print(i);
elseSystem.out.print("*"+i);
f(n/i,m-1);
return;
}
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
intn=sc.nextInt();
System.out.print(n+"=");
f(n,1);
System.out.println();
}
}

運行結果:

90
90=2*3*3*5

閱讀全文

與遞歸分解質因數c程序相關的資料

熱點內容
沒有網路怎麼定位 瀏覽:972
剪切到優盤文件找不到了 瀏覽:764
電腦管家的文件名 瀏覽:910
如何將掃描文件轉換為電子版 瀏覽:4
u盤的h246文件怎麼播放 瀏覽:203
如何用阿里雲伺服器學習資料庫 瀏覽:84
華為文件管理找不到下載文件 瀏覽:409
word模板dot的使用 瀏覽:466
春節車找人app哪個好 瀏覽:618
文件管理電腦找不到了怎麼辦 瀏覽:516
如何改變app圖標圖片 瀏覽:767
什麼是大數據結構的最低層 瀏覽:575
pdf文件給對方後期改密碼收回 瀏覽:295
word2010怎麼畫箭頭 瀏覽:184
win10的自動備份文件在哪個目錄 瀏覽:843
文件夾打包成jar 瀏覽:456
卸載魯大師找不到文件 瀏覽:173
匯編程序不知道哪裡有錯誤 瀏覽:821
ai視頻教程cs5 瀏覽:379
億林網路怎麼樣 瀏覽:102

友情鏈接