zoukankan      html  css  js  c++  java
  • 费马小定理求逆元, 扩展欧几里得求互质数

    求 (a/b)%m 正常做可能会爆精度。然后可以求出b的逆元,将除法转换为乘法进行计算。b的逆元等于 b的(m-2)次方。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int mod=9973;
    long long quickpow(long long t1,long long t2)
    {
        if(t2<0)return 0;
        long long ret=1;
        t1%=mod;
        while(t2)
        {
            if(t2&1)ret=(ret*t1)%mod;
            t2>>=1;
            t1=(t1*t1)%mod;
        }
        return ret;
    }
    int main()
    {
        ios::sync_with_stdio(false);
        int T;
        cin>>T;
        while(T--)
        {
            long long int n,m;
            cin>>n>>m;
            long long t=quickpow(m,9973-2);
            cout<<n*t%9973<<endl;
        }
        return 0;
    }
    

    题目链接:https://cn.vjudge.net/contest/245879#problem/A

    代码:

    #include<iostream>
    using namespace std;
    const int mod=9973;
    int eular(int n)
    {
        int ret=1,i;
        for(i=2; i<=n; i++)
            if(n%i==0)
            {
                n/=i;
                ret*=i-1;
                while(n%i==0)
                {
                    n/=i,ret*=i;
                }
            }
        if(n>1)ret*=n-1;
        return ret;
    }
    int main()
    {
        int n;
        while(cin>>n&&n)
        {
            long long int t=eular(n);
            cout<<t<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    webServer xampp的安装及使用
    javascript 原生方法监听DOM结构改变事件
    c# 文件简繁体转换
    c# 网络是否连接
    JMS
    JMS
    JMS
    Quartz Scheduler(2.2.1)
    MySQL
    Git CMD
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10262948.html
Copyright © 2011-2022 走看看