Primes and Multiplication
Posted cadcadcad
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Primes and Multiplication相关的知识,希望对你有一定的参考价值。
思路:找到
x
的所有质数因子,用一个vector
储存起来,然后对于每一个质因子来说,我们要找到它对最后的答案的贡献的大小,即要找到它在最后的乘积中出现了多少次。求解方法:
for(auto i:v) ll cnt=0; ll temp=n/i; while(temp) cnt+=temp,temp/=i; ans=(ans*qpow(i,cnt))%mod;
另外,该题还需要用到快速幂的技巧。
ll qpow(ll x,ll n) ll re=1; while(n) if(n&1) re=(re*x)%mod; n>>=1,x=(x*x)%mod; return re;
代码:
// Created by CAD on 2019/10/1.
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
ll qpow(ll x,ll n)
ll re=1;
while(n)
if(n&1) re=(re*x)%mod;
n>>=1,x=(x*x)%mod;
return re;
vector<ll> v;
int main()
ll n,x; cin>>x>>n;
for(ll i=2;i*i<=x;++i)
if(x%i==0)
v.push_back(i);
while(x%i==0)
x/=i;
if(x!=1) v.push_back(x);
ll ans=1;
for(auto i:v)
ll cnt=0;
ll temp=n/i;
while(temp)
cnt+=temp,temp/=i;
ans=(ans*qpow(i,cnt))%mod;
cout<<ans<<endl;
以上是关于Primes and Multiplication的主要内容,如果未能解决你的问题,请参考以下文章
C. Primes and Multiplication(数学)(防止爆精度)
Codeforces 1228C. Primes and Multiplication
E - Addition and Multiplication 2(贪心)
E - Addition and Multiplication 2(贪心)
E - Addition and Multiplication 2(贪心)
algorithm@ Divide two integers without using multiplication, division and mod operator. (Bit Operati