時間限制:
3000 ms | 記憶體限制:
65535 kb
難度:3 描述
給定兩個數n,m,其中m是乙個素數。
將n(0<=n<=2^31)的階乘分解質因數,求其中有多少個m。
注:^為求冪符號。
輸入
第一行是乙個整數s(0
輸出輸出m的個數
樣例輸入
3100 5
16 2
1000000000 13
樣例輸出
241583333329
這題的思維方式真是要給乙個大大的贊,本來想用模擬+遍歷的辦法感覺肯定要超時就放棄了,但沒想到方式居然如此巧妙
eg:n=100 m=5100是由20個5組成的,1~100中是5的倍數的數有 5、10、15、20.。。。100
每十個數有兩個 數是5的倍數,所以1~100中5的倍數有20個 ,
從這二十個數中各分解出乙個5,則有20個5,然後這二十個數變成20、19、18.。。1
即20的階乘了相當於變成求20的階乘能分解多少個m
在1~20中又能分解4個
在往下就不夠 5個數了,就結束迴圈
所以總共能分解24個
#include using namespace std;
int main()
cout<
NYOJ 階乘因式分解(一)(二)
時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述給定兩個數m,n,其中m是乙個素數。將n 0 n 10000 的階乘分解質因數,求其中有多少個m。輸入 第一行是乙個整數s 0 s 100 表示測試資料的組數 隨後的s行,每行有兩個整數n,m。輸出 輸出m的個數。樣例輸入 2 1...
階乘因式分解
時間限制 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 輸出輸出m的個數。樣例輸入 2 100 5 16 2 樣例輸出 24 15 includeint main printf d n sum return 0 剛看到這道...