我們知道,每個自然數(不包括0和1)都有2個以上的因數,因數最少的是質數(也叫素數),質數的因數是1和它本身。非質數的自然數也叫合數,它們都含有3個以上(含3個)的因數。
1、怎樣求乙個數有多少個因數?
對於乙個已知的自然數,要求出它有多少個因數,可用下列方法:
首先將這個已知數分解質因數,將此數化成幾個質數冪的連乘形式,然後把這些質數的指數分別加一,再相乘,求出來的積就是我們要的結果。
例如:求360有多少個因數。
因為360分解質因數可表示為:360=2^3×3^2×5,2、3、5的指數分別是3、2、1,這樣360的因數個數可這樣計算出:
(3+1)(2+1)(1+1)=24個。
我們知道,360的因數有 1,2,3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,60,72,90,120,180,360正好24個,可見上述計算正確。
2、怎樣求出有n個因數的最小自然數?
同樣擁有n個(n為確定的數)因數的自然數可以有多個不同的數,如何求出這些數中的最小數?
這是與上乙個問題相反的要求,是上一題的逆運算。
比如求有24個因數的最小數是多少?
根據上一問題解決過程的啟示,可以這樣做,先將24分解因式,把24表示成幾個數連乘積的形式,再把這幾個數各減去1,作為質數2、3、5、7......的指數,求出這些帶指數的數連乘積,試算出最小數即可。具體做法是:
因為:24=4×6, 24=3×8, 24=4×3×2,
現在分別以這三種表示法試求出目標數x:
(1)、24=4×6,4-1=3,6-1=5
x=2^5×3^3=864
(2)、24=3×8,3-1=2,8-1=7
x=2^7×3^2=1152
(3)24=4×3×2,4-1=3, 3-1=2, 2-1=1
x=2^3×3^2×5=360
綜合(1)、(2)、(3)可知360是有24個因數的最小數。
文章出處:
自然數拆分
描述 description 輸入自然數n,然後將其拆分成由若干數相加的形式,參與加法運算的數可以重複。輸入格式 inputformat 輸入只有乙個整數n,表示待拆分的自然數n。n 80 輸出格式 outputformat 輸出乙個數,即所有方案數 樣例輸入 sampleinput 複製資料 7 ...
自然數拆分
問題描述 自然數的拆分 任何乙個大於1的自然數n,總可以拆分成若干個自然數之和,並且有多種拆分方法。試求 n的所有拆分。例如自然數5,可以有如下一些拆分方法 5 1 1 1 1 1 5 1 1 1 2 5 1 2 2 5 1 4 5 2 3 注意,本題中n拆分出來的數x的範圍是1 x整數劃分可以參考...
自然數拆分
題目 給出sum min max和n四個正整數,請輸出所有將sum拆分為n個遞增的正整數 允許相等 之和,其中每個正整數k都滿足 min k max。在少俠的部落格 看到這道題 就隨手做了下。該題與輸出n個數取m個數的所有組合類似,只不過限定了m個數的和以及取值範圍。可以先用貪心演算法構造乙個最小的...