zoukankan      html  css  js  c++  java
  • C. Primes and Multiplication

    题目连接:https://codeforces.com/contest/1228/problem/C

    题目大意:g(x,y)==y^k(其中y^k是X的最大可以整除因子)

         f(x,y)==g(x,p1)*(x,p2)....其中pi是x的第i个质因子

    求f(x,1)*f(x,2)*f(x,3)---*f(x,n);

    题解:对于整数N....N/x==从1到N可以被X整除的个数N/x^2同理。。。

    所以我们不妨对每个质因子进行叠加,对于第一个p1,让N多次除以p1,同时记录可以整除的个数,最终我们就可以统计p1的总个数,其他质因子类似。

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll mod=1e9+7;
    const int N=1e5+7;
    int arr[N];
    ll ksm(ll x,ll y){
        ll res=1;
        while(y){
            if(y&1) res=(res%mod*x%mod)%mod;
            y>>=1;
            x=(x%mod*x%mod)%mod;
        }
        return res%mod;
    }
    int main(){
        ll n,m;
        cin>>n>>m;
        ll pos=0;
        for(ll i=2;i*i<=n;i++){
            if(n%i==0){
                arr[pos++]=i;
                while(n%i==0)    n/=i;
            }
        }
        if(n!=1) arr[pos++]=n;
        ll ans=1;
        for(ll i=0;i<pos;i++){
            ll z=m;
            ll t2=0;
            while(z){
                ll t1=z/arr[i];
                z/=arr[i];
                t2+=t1;
            }
            ans=(ans%mod*ksm(arr[i],t2)%mod)%mod;
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    springboot模板
    springboot入门
    java自定义注解
    git集成idea
    git的搭建和使用
    Shiro授权
    shiro认证
    shiro入门
    springmvc文件上传
    springmvc入门
  • 原文地址:https://www.cnblogs.com/Accepting/p/11735296.html
Copyright © 2011-2022 走看看