題目描述
給出乙個正整數a,要求分解成若干個正整數的乘積,即a=a1×a2×a3×…×an,並且1該題採取遞迴方式去完成
定義全域性變數ans、n,ans作為分解因數中的種類數目,n為被分解的數。
設dns(h,z)中,h為因數時分解的種數。定義乙個字母i作為因子來判斷是否可以作為h的因子,如果可以則判斷下一級遞迴dfs(h/i,i) 最後當h為1時,則這一種方式已停止,令ans自加1,**實現如下:
void
dfs(
int h,
int z)
else
for(
int i=z;i<=h;
++i)
if(h%i==0)
dfs(h/i,i)
;}
其中當因數為2時該分解種類只有一種,直接提取該特殊數字
if
(n==2)
最後的全部**為
#include
int n,ans=0;
void
dfs(
int h,
int z)
else
for(
int i=z;i<=h;
++i)
if(h%i==0)
dfs(h/i,i);}
intmain()
dfs(n,2)
;printf
("%d\n"
,ans);}
return0;
}
因數分解(C語言)
題目描述 所謂因子分解,就是把給定的正整數a,分解成若干個素數的乘積,即 a a1 a2 a3 an,並且 1 a1 a2 a3 an。其中a1 a2 an均為素數。先給出乙個整數a,請輸出分解後的因子。輸入輸入包含多組資料,每組資料報含乙個正整數a 2 a 1000000 輸出對應每組資料,以 a...
藍橋杯 分解質因數 C語言
問題描述 求出區間 a,b 中所有整數的質因數分解。輸入格式 輸入兩個整數a,b。輸出格式 每行輸出乙個數的分解,形如k a1a2a3 a1 a2 a3 k也是從小到大的 具體可看樣例 樣例輸入 3 10 樣例輸出 3 34 22 5 56 23 7 78 222 9 33 10 25 提示先篩出所...
C語言 質因數分解
學習的第4天,關於質因數分解,翁凱老師的第五周第乙個題目 輸入格式 乙個整數,範圍在 2,100000 內。輸出格式 形如 n axbxcxd 或n n 所有的符號之間都沒有空格,x 是小寫字母x。輸入樣例 18輸出樣例 18 2x3x3 畢竟剛學,寫的有點渣,哈哈 如下 include int f...