階乘因式分解

2021-08-04 11:02:14 字數 815 閱讀 3930

描述

給定兩個數m,n,其中m是乙個素數。

將n(0<=n<=10000)的階乘分解質因數,求其中有多少個m。

輸入

第一行是乙個整數s(0

輸出輸出m的個數。

樣例輸入

2

100 5

16 2

樣例輸出

24

15

#includeint main()

printf("%d\n",sum);

} return 0;

}

剛看到這道題確實有點懵逼,還是用最直接的求階乘,然後乙個數乙個數的判斷,當了解到這種演算法時比較好奇,怎麼會這麼簡單,且一時理解不了,在網上搜解釋,解釋也是特別抽象,終於最後領悟了,比較開心,所以把自己的理解具體的寫下來。

這個程式最精要的也就是  n=n/m; sum=sum+n;這兩句,我的理解如下:

例如100和5

n的階乘:1*2*3*4*5*6*.......*100 裡面有多少需要5呢? 5肯定需要,10也需要,類似的15.20.25....100;都是由5構成,那麼他們的因式肯定都有5,那麼這樣的數有多少呢?那就是 n=n/m;100/5=20;而這20個數里還是有特別的數,比如25,50,他們是由5*5,5*5*2構成,當然還有75,100,他們都有倆個5,所以還需要加一遍他們的個數,這是100和5,如果是其他的數,可能迴圈還會繼續下去。

階乘因式分解

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 給定兩個數n,m,其中m是乙個素數。將n 0 n 2 31 的階乘分解質因數,求其中有多少個m。注 為求冪符號。輸入 第一行是乙個整數s 0 輸出輸出m的個數 樣例輸入 3 100 5 16 2 1000000000 13 樣例...

階乘因式分解(一)

描述 給定兩個數m,n,其中m是乙個素數。將n 0 n 10000 的階乘分解質因數,求其中有多少個m。輸入 第一行是乙個整數s 0 100 表示測試資料的組數 隨後的s行,每行有兩個整數n,m。輸出 輸出m的個數。樣例輸入 2 100 5 16 2 樣例輸出 24 15 階乘指從1乘以2乘以3乘以...

階乘因式分解(一)

描述 給定兩個數m,n,其中m是乙個素數。將n 0 n 10000 的階乘分解質因數,求其中有多少個m。輸入 第一行是乙個整數s 0 s 100 表示測試資料的組數 隨後的s行,每行有兩個整數n,m。輸出 輸出m的個數。樣例輸入 2 100 5 16 2 樣例輸出 24 15 演算法思路 由於m是乙...