数论---数论初步
pengwill97
C.S Master
展开
-
数论初步
一、唯一分解定理基本描述任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积.理解换句话说,它来指导我们分解质因数。 想想在分解质因数的时候,我们使用的是短除法,先试除2,然后试除3,其实就是用到的唯一分解定理。代码找出num的所有质因数void findfactor(int num){ v.clear(); int i = 2; while(nu原创 2017-08-09 13:56:23 · 522 阅读 · 0 评论 -
UVA.12169 Disgruntled Judge ( 拓展欧几里得 )
UVA.12169 Disgruntled Judge ( 拓展欧几里得 )题意分析给出T个数字,x1,x3……x2T-1。并且我们知道这x1,x2,x3,x4……x2T之间满足xi = (a * xi-1 + b ) MOD 10001, 求出x2,x4……x2T. 由于本题中的a和b是未知的,所以需要根据已知条件求出a和b,据说有人暴力枚举a和b然后过了。 所以我来换另一种方法。 其实我们可原创 2017-08-09 22:23:27 · 215 阅读 · 0 评论 -
UVA.10375 Choose and divide (唯一分解定理)
UVA.10375 Choose and divide (唯一分解定理)题意分析首先写出组合数的公式,然后利用唯一分解定理分解每一项,若是在分子,则加一,在分母减一,最后根据分解的结果计算即可。代码总览#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <cmath>#defin原创 2017-08-10 09:09:09 · 218 阅读 · 0 评论 -
UVA.10791 Minimum Sum LCM (唯一分解定理)
UVA.10791 Minimum Sum LCM (唯一分解定理)题意分析也是利用唯一分解定理,但是要注意,分解的时候要循环(sqrt(num+1))次,并要对最后的num结果进行判断。代码总览#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>#define nmax 505#define ll原创 2017-08-10 09:12:00 · 206 阅读 · 0 评论 -
UVA.12716 GCD XOR (暴力枚举 数论GCD)
UVA.12716 GCD XOR (暴力枚举 数论GCD)题意分析题意比较简单,求[1,n]范围内的整数队a,b(a<=b)的个数,使得 gcd(a,b) = a XOR b. 前置技能XOR的性质 GCD 由于题目只给出一个n,我们要求对数,能做的也始终暴力枚举a,b,这样就有n^2的复杂度,由于n很大,根本过不了。 于是我们就想用到其中一些性质,如XOR 与GCD,不妨假设 a xor原创 2017-08-10 11:33:11 · 238 阅读 · 0 评论 -
线性筛法与欧拉函数
线性筛法与欧拉函数标签(空格分隔): 数论一、引入我们已经很熟悉Eratosthenes筛法(埃拉托斯特尼筛法),其基本思想是,每次筛去一个指数的所有倍数,如对于质数2,筛去4,6,8等等,对于质数3,筛去6,9,12等等。 其弊端也显而易见,6和12等等数字,均被筛去的多次,这样就造成了重复,复杂度不够好。 有没有更快的筛法,当然有。二、说在前面对于任何一个数字,我们都能利用唯一分解定理将其拆原创 2017-08-23 18:28:34 · 1101 阅读 · 0 评论 -
HDU.2588 GCD (欧拉函数)
HDU.2588 GCD (欧拉函数)标签(空格分隔): 数论题意分析我怎么也看不出来这是一道欧拉函数的题目,也是参考了别人的解法写的。 题意就是计算1-N区间里有多少数和N的gcd是大于M的。枚举所有可能情况计算肯定 考虑这样一件事情,我们枚举i∈[1,N],i∈[1,N],令 N=a∗bi=a∗dN = a * b\\i = a * d\\ 当gcd(N,i)=agcd(N,i)原创 2017-08-27 22:12:00 · 327 阅读 · 0 评论