zoukankan      html  css  js  c++  java
  • 数学【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);
    }
    
  • 相关阅读:
    while和do while习题
    Flexigrid折行显示问题
    【Cocos2d-x游戏引擎开发笔记(25)】XML解析
    ruby简单的基本 6
    原因好消息: PSP游戏自己主动算法设计(两)
    《约会专家》拖车【约会宝典】总结
    C++在stack的deque实现
    hdu 4869
    SQL Server 2008杀数据库连接
    BestCoder-Round#33
  • 原文地址:https://www.cnblogs.com/-guz/p/9620089.html
Copyright © 2011-2022 走看看