給定數n,求n 的p進製下有多少個後導零

2021-10-11 22:54:45 字數 788 閱讀 4016

這是一道很簡單的中學數學題:

給定數n,求n!的p進製下有多少個後導零。非常簡單。

為了簡化問題,p保證為素數。

第一行給定乙個數t,表示有t組輸入

接下來t行,每行給定兩個數n,p;意義如題所示;

輸入範圍:(t<=1000) (1<=n<=1000000 ) (2<=p<=1000000)

對於每一組輸入,輸出單獨的一行表示答案。
示例1

複製2 2 2 3 2

2

2 23 2

複製1 1

1

1

#include using namespace std;

#define pb push_back

#define ll long long

#define pii pair#define fi first

#define se second

#define endl '\n'

const double pi=acos(-1.0);

const int n=1e6+10,m=1e6+10,mod=1e9+7,inf=0x3f3f3f3f;

int n,p;

int dx[4]=;

int dy[4]=;

int s[2020][2020];

void solve()

cout<>t;

while(t--)

return 0;}/*

*/

關於 n 的p進製下有多少個後導零 的問題

給定數n,求n 的p進製下有多少個後導零。為了簡化問題,p保證為素數。如果用大整數寫法,解法可能會超時。易知,如果乙個數可以另外乙個數被整除,那麼成為這個數的幾倍數的數也可以被整除。利用這個思路,可以推出 如果可以被p整除,那麼這個數的幾倍數的數也可以被整除 即 如果可以使p進製下形成乙個後導0,那...

求N 有多少個0,1,2, ,9

給出乙個正整數n 0 n 10000 求n 有多少個0,1,2,9。輸入有一行,為乙個正整數n 輸出n 中0,1,2,9的個數 以空格隔開 10 2 0 1 1 0 0 1 0 2 0 分析 n!最多只有35660位 n 10000時 因為時間充足,所以可採用求大數階乘的演算法求出n!的具體數值,然...

給定乙個整數N,那麼N的階乘N!末尾有多少個0呢?

題目詳情 給定乙個整數n,那麼n的階乘n!末尾有多少個0呢?例如 n 10,n!3 628 800,n!的末尾有兩個0。題目分析 看到題第一想法是將n的階乘求出來然後取計算,但是再一想又會出現資料溢位的問題。所以就想到了另外一種辦法。因為 n!1 2 3 4 5 n 所以我們可以採用分解質因數來解決...