• 数学【p2613】 【模板】有理数取余(费马小定理)


    题目描述

    给出一个有理数 c=a/b ,求 c mod 19260817的值。

    说明

    对于所有数据, 0≤a,b≤10^10001

    分析:

    一看题 这么短 哇简单!况且19260817还是个素数!(美滋滋

    再一看数据 我天 可怕 10^10001

    一看 完了 要打高精 (但我打高精肯定GG啊

    一想 根据同余好像可做(前面的大佬讲过了我就不赘述了

    哦 对了 还有费马小定理:

    a^phi(p)≡1(mod p) (只对于p是质数的情况哦

    然后对于快读 略做修改就可以了

    --------------------代码----------------------

    #include<bits/stdc++.h>
    #define IL inline
    #define RI register int
    #define mod 19260817
    long long a,b,ans;
    IL void read(long long &x){
    	int f=1;x=0;char s=getchar();
    	while(s>'9'||s<'0'){if(s=='-')f=-1;s=getchar();}
    	while(s<='9'&&s>='0'){x=x*10%mod+(s-'0')%mod;s=getchar();}//改成了取模~~
        x=x%mod*f;//改成了取模~
    }
    IL long long ksm(long long x,long long p)
    {
    	long long res=1;
    	for(;p;p>>=1,x=x*x%mod)
    		if(p&1)res=res*x%mod;
    	return res;
    }//快速幂
    int main()
    {
    	read(a);read(b);
    	if(b==0){printf("Angry!");return 0;}
        //注意这里 特判! 不要忘记 还有 不要忘记感叹号!!!
    	ans=a*ksm(b,mod-2);
    	printf("%lld",(ans%mod+mod)%mod);
    }
    
  • 相关阅读:
    好用的电脑软件
    Swoft HTTPServer 使用经验分享
    nginx location proxy_pass详解
    kafka文档
    es 安装
    rabbitmq 文档
    Mysql百万级数据迁移,怎么迁移?实战过没?
    用bat脚本在Windows上实现微信多开
    vscode保存时自动格式化
    引入bootstrap
  • 原文地址:https://www.cnblogs.com/-guz/p/9620089.html
Copyright © 2020-2023  润新知