数论入门
hushhw
这个作者很懒,什么都没留下…
展开
-
欧拉函数代码实现
欧拉函数phi(x)是指不大于正整数x的与x互质的正整数的个数。例如phi(1)=1,phi(2)=1,phi(3)=2,phi(4)=2,phi(5)=4,phi(6)=2等等。很显然,对每一个质数p,phi(p)=p-1。而对每一个质数的幂phi(p^n)=(p-1)×p^(n-1)。欧拉函数是积性函数,如果m、n互质,那么phi(m×n)=phi(m)×phi(n)。 欧拉函数的取原创 2017-08-02 11:37:25 · 2247 阅读 · 0 评论 -
中国剩余定理-数硬币
题目内容: 数一堆硬币,x1个一拨,则余下y1个; x2个一拨,则余下y2个; 。。。 xn个一拨,则余下yn个; 问最少有几个硬币 输入描述 第一行输入整数n 第二行是x1 x2原创 2017-07-28 20:25:07 · 545 阅读 · 0 评论 -
扩展欧几里得算法
扩展欧几里得算法是为了解决这样一个问题:给定两个非零的整数 a 和 b,求一组正整数 (x, y),使得 ax+ by = gcd(a, b) 成立,其中 gcd(a, b) 表示 a 和 b 的最大公约数。由前面用到的欧几里得算法求最大公约数的方法可知,它总是把 gcd(a, b) 转化为求解 gcd(b, a%b),当 b 变为 0 的时候返回 a,此时 a 就等于gcd。也就是...原创 2017-07-27 18:57:33 · 393 阅读 · 0 评论 -
中国剩余定理(孙子定理)详解
问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?说明白一点就是说,存在一个数x,除以3余2,除以5余三,除以7余二,然后求这个数。上面给出了解法。再明白这个解法的原理之前,需要先知道一下两个定理。定理1:几个数相加,如果存在一个加数,不能被数a整除,那么它们的和,就不能被整数a整除。定理2:两数不能整除,若除数扩大(或缩小)了几倍,而被除数不变,则转载 2017-07-27 23:20:46 · 1660 阅读 · 0 评论 -
同余方程-NOIP2012TGD2T1
题目描述求关于x的同余方程ax≡1(mod b)的最小正整数解。 输入格式每组输入数据只有一行,包含两个正整数a, b,用一个空格隔开。 数据规模:对于40%的数据,2≤b≤1,000;对于60%的数据,2≤b≤50,000,000;对于100%的数据,2≤a, b≤2,000,000,000。 输出每转载 2017-07-27 21:15:13 · 292 阅读 · 0 评论 -
最大公约数(欧几里得算法)
正整数a与b的最大公约数指的是a与b的所有公约数中最大的那个公约数,如4和6的最大公约数是2。一般用gcd(a,b)来表示a,b的最大公约数,而求解最大公约数常用的欧几里得算法(即辗转相除法)。欧几里得算法基于下面这个定理:设a、b均为正整数,则gcd(a, b) = gcd(b, a%b)。如果a<b,那么定理的结构就是将a和b交换;如果a>b,那么通...原创 2017-07-26 21:00:36 · 653 阅读 · 0 评论 -
题目458-小光棍数
小光棍数时间限制:1000 ms | 内存限制:65535 KB难度:1描述最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?输入有多组测试数据。第一行一个整数原创 2017-08-11 16:04:09 · 638 阅读 · 0 评论 -
求素数及素数表的获取
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。最小的质数是2。1.素数的判断由于一些题目中素数的判断只是其中的一部分,所以如果这个时候的时间复杂度为O(n)实际上有点大了,所以我们需要更加快速的判定方法。注意到如果在2~n-1中存在n的约数,不原创 2017-07-27 17:33:48 · 1294 阅读 · 0 评论 -
【PAT B1019/A1069】数字黑洞
问题描述任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);3)求两个数的差,得到一个新的四位数(高位零保留)。重复以上过程,最后一定会得到的结果是6174。比如原创 2017-07-26 21:34:27 · 319 阅读 · 0 评论 -
分数转小数(模拟)
请写出一个程序,接受一个以N/D(0一些转化的例子:1/3=.(3) 22/5=4.4 1/7=.(142857) 3/8=.375 11/59= .(1864406779661016949152542372881355932203389830508474576271) 45/47=.(9574468085106382978723404255319148936原创 2017-10-27 11:26:04 · 1187 阅读 · 1 评论