小余最近迷恋上了数论,他认为大素数的判定是非常迷人的,但是他的程序总是数一大就死循环= = ,结果找了一晚上,发现原来是求a*b%c这个环节上出现了错误,聪明的你能帮助可怜的小余求出这个问题吗?input 测试数组有多组,每行输入三个整数a,b,c(1<=a,b,c<2^64)output 对于每次输入,对应输出相应的结果即a*b%c的值。每个输出占一行。sample_input 1 2 3
2...
分类:
其他好文 时间:
2015-05-27 19:06:27
阅读次数:
143
题目:http://poj.org/problem?id=1995题目解析:求(A1B1+A2B2+ ... +AHBH)mod M.大水题。#include #include #include #include #include using namespace std;int n,mod,sum;...
分类:
其他好文 时间:
2015-01-20 22:04:01
阅读次数:
193
题目就是指定n,求卡特兰数Ca(n)%m。求卡特兰数有递推公式、通项公式和近似公式三种,因为要取余,所以近似公式直接无法使用,递推公式我简单试了一下,TLE。所以只能从通项公式入手。Ca(n) = (2*n)! / n! / (n+1)!思想就是把Ca(n)质因数分解,然后用快速幂取余算最后的答案。...
分类:
其他好文 时间:
2014-12-03 13:58:09
阅读次数:
319
题意:求A^B的所有因子的和对9901取余后的值
如:2^3=8,8的因子有 1,2,4,8,所有和为15,取余后也是15
应用定理主要有三个:
(1)整数的唯一分解定理:
任意正整数都有且只有一种方式写出其素因子的乘积表达式。
A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn) 其中pi均为素数...
分类:
其他好文 时间:
2014-11-04 09:22:55
阅读次数:
194
题目大意:给你一个N,计算N^N个位上的数字是多少
思路:普通方法超时,利用快速幂取余计算N^N%10,这里贴一个二进制
快速幂取余的代码...
分类:
Web程序 时间:
2014-10-29 00:20:46
阅读次数:
256
题目大意:费马定理:a^p = a(mod p) (a为大于1的整数,p为素数),一些非素数p,同样也符合上边的
定理,这样的p被称作基于a的伪素数,给你p和a,判断p是否是基于a的伪素数
思路:很简单的快速幂取余+素性判断
如果p为素数,则直接输出no
如果p不为素数,则进行快速幂取余判断是否为伪素数,若是,输出yes,不是,输出no...
分类:
其他好文 时间:
2014-09-23 08:30:34
阅读次数:
248
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817题目大意:给出三个数,来判断是等差还是等比数列,再输入一个n,来计算第n个数的值。 1 #include 2 #include 3 #include 4 #define m 200907 5 ...
分类:
其他好文 时间:
2014-08-03 15:02:35
阅读次数:
188
求a^b mod c
算法1.
首先直接地来设计这个算法:
int ans=1, i;
for(i=1;i<=b;i++)
ans*=a;
ans%=c;
这个算法的时间复杂度体现在for循环中,为O(b).
这个算法存在着明显的问题,如果a和b过大,很容易就会溢出。
那么,我们先来看看第一个改进方案:在讲这个方案之前,要先有这样一个公式:
a^b mod c=(...
分类:
其他好文 时间:
2014-07-29 18:05:02
阅读次数:
308
求a^bmodc算法1.首先直接地来设计这个算法:int ans=1, i; for(i=1;i0) { if(b % 2 == 1) ans = (ans * a) % c; b = b/2; a = (a * a) % c; ...
分类:
其他好文 时间:
2014-07-29 17:25:12
阅读次数:
152