Wannafly挑戰賽25 A 因子

2021-08-28 13:37:38 字數 1009 閱讀 9061

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

令 x = n!, 給定一大於1的正整數p 求乙個k使得 p ^k | x 並且 p ^(k + 1) 不是x的因子。

兩個數n, p (1e18>= n>= 10000 >= p >= 2)
乙個數

表示k

示例1

複製

10000 12
複製

4996
找出乙個k,使得x%p^k==0 && x%p^(k+1)!=0。

我們可以對乙個數進行分解。乙個數如果所有質因子的對應個數都小於等於另乙個數的對應的個數,那麼這個數是另乙個數的因子。否則不是。階乘的分解也很好推。

本題n的範圍是1e18,而p的範圍是10000,那麼我們就只需要考慮10000範圍內的質因子就行了。

#includeusing namespace std;

#define maxn 10005

#define ll long long

#define inf 0x3f3f3f3f3f3f3f3f

#define mod 1000000007

ll n,p;

ll dp[maxn],dis[maxn];

int prime[maxn];

bool is_prime[maxn];

int sieve(int nn)

}return pn;

}int main()

}memset(dis,0,sizeof dis);

ll minn=inf;

for(int i=0;iif(dis[num]==0) continue;

minn=min(minn,dp[num]/dis[num]);

}printf("%lld\n",minn);

return 0;

}

Wannafly挑戰賽25A 質因子分解

階乘因子分解,找出n 中有多少個p ll findnum ll n,ll p return ans include include include include include using namespace std typedef long long ll 篩出p的最小質數和個數,再用快速演算法...

Wannafly挑戰賽25 因子 數論

一 題意 令 x n 給定一大於1的正整數p 求乙個k使得 p k x 並且 p k 1 不是x的因子 輸入為兩個數n,p 1e18 n 10000 p 2 二 分析 2.1前置知識 階乘質因數分解 定理 在n!的標準分解式中,質因數p的指數h為 h left right left right su...

Wannafly挑戰賽25 C 期望運算元

nqijij 有乙個數x,和乙個神秘權值 q,滿足 x q,每一次nqijij會隨機x 變成 x,q 中的乙個隨機數,nqijij想要知道期望多少次操作之後x 變為q。由於nqijij 是乙個精力充沛的人,所以他總共會選擇 t 次x 和q 進行操作,對於每一次操作,你需要輸出期望多少次操作之後x 變...