对于不完全为0的非负整数a, b. gcd(a, b)表示a, b 的最大公约数。那么存在整数x, y使得 gcd(a, b) = a * x + b * y; 不妨设a > b ① ,当b = 0 时,gcd(a, b) = a , 此时 x = 1, y = 0; ② ,当 a * b <> 0 ...
分类:
其他好文 时间:
2016-08-14 12:56:39
阅读次数:
169
1.基础 【除法定理】:对于任何整数a和正整数n,存在唯一整数q和r,满足0<=r<n且a=qn+r WARN:C++中貌似不完全遵守这个东西,n认为是|n|,并且a为负时r可以为负 【】 2.最大公约数 几条性质:gcd(a,b)=gcd(|a|,|b|) gcd(a,0)=|a| gcd(a,k ...
分类:
编程语言 时间:
2016-08-13 01:17:27
阅读次数:
262
Prime Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 84 Solved: 12[Submit][Status][Web Board] Description 如果a,b的最大公约数是1,说明a,b是一对互素的数,给定你n个数字,希望你找出互素的数的 ...
分类:
其他好文 时间:
2016-08-12 23:33:53
阅读次数:
192
我只能说这个数论定理对我一脸懵比,哦不对,是我对这个数论定理一脸懵比,暂时 只准备记住模板就好了,求最小逆元的时候可以用一下,如果mod为素数而且不要求 最小的话还是用费马小定理吧,对了还是要说一下,这个模板中exgcd(扩展欧几里德) 的返回值是gcd(最大公约数),其中x才是要求的逆元,而且一求 ...
分类:
其他好文 时间:
2016-08-10 19:06:54
阅读次数:
122
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2588 题目大意:题目要求小于等于n且与n的最大公约数大于等于m的所有数的个数 方法:使用欧拉函数 那么应该怎么去写呢?首先欧拉函数只能求出小于n且与n互质的所有数的个数,但是里面有我们所需要的数字,所以 ...
分类:
其他好文 时间:
2016-08-06 17:34:39
阅读次数:
183
这个题目,如果没找到方向,确实有点一头雾水。但是如果你找对方向了,AC是分分钟的事。答案就是看n和m是否有除1之外的公约数。 简单证明:设n和m最大公约数不是1,假设为p。n和m总可以化为一个数乘以k的形式吧,不妨令n=a*k,m=b*k(暂时不知道有什么用); 那么狼第一次遍历的洞口编号为0,m, ...
分类:
其他好文 时间:
2016-08-06 17:20:39
阅读次数:
99
原题链接:点击此处 题意: 狼捉兔子,兔子躲在n个洞中一个,这n个洞围成一个圈,狼会从第0号洞开始,搜索隔m的洞,一直搜索下去, 问是否存在洞另狼永远搜索不到。 对于输入的m,可以看作是狼的步伐。 对于输入的n,用0到n-1围成一圈。 思路: 如果m和n有最大公约数(非1),则有一些标号的洞坑狼永远 ...
分类:
其他好文 时间:
2016-08-06 15:51:58
阅读次数:
141
#include<stdio.h>int main(){ int num1, num2,temp; scanf("%d%d",&num1,&num2); int t1 = num1; int t2 = num2; while (num2 != 0) { temp = num1%num2; num1 ...
分类:
编程语言 时间:
2016-08-03 20:28:04
阅读次数:
214
欧几里德算法(求最大公约数): 顺便写下求最小公倍数(lcm) 朴素的欧几里德: gcd(a, b) = gcd(b, a%b); 扩展欧几里德算法: 该算法一般有三种应用: 应用1: 利用它可以求解整数对(x, y).一定存在这样的整数对(x, y), 使得ax + by = gcd(a, b); ...
分类:
编程语言 时间:
2016-08-03 13:14:56
阅读次数:
315