求最小公约数,最容易想到的是欧几里得算法,这个算法也是比较容易理解的,效率也是很不错的。也叫做辗转相除法。
对任意两个数a,b(a>b),d=gcd(a,b),如果b不为零,那么gcd(a,b)=gcd(b,a%b)
证明: 令 r=a%b,即存在k,使得 a=b*k+r,那么r=a-b*k;显然r>=0, r%d=((a%d)-(b*k)%d)%d,因为a%d=b%d=0,所以r%d=...
分类:
编程语言 时间:
2014-11-12 21:17:10
阅读次数:
318
曾经做过的40道程序设计课后习题总结(一) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询 7 求最大公约数与最小公倍数 8 完全平方数 9 统计字母、空格、数字和其它...
分类:
其他好文 时间:
2014-11-12 12:04:57
阅读次数:
292
最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,当中一个最小的公倍数是他们的最小公倍数,相同地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:...
分类:
编程语言 时间:
2014-11-11 20:49:09
阅读次数:
186
Problem Description新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。Input第一行是...
分类:
其他好文 时间:
2014-11-11 12:35:46
阅读次数:
154
题目描述:
Given n points
on a 2D plane, find the maximum number of points that lie on the same straight line.
解题思路:暴力求解。以每个点为中心,然后遍历剩余的点。对每个点,初始化一个map,以pair为key(dx,dy为两点之间x坐标与y坐标的差除以他们的最大公约数之后得到...
分类:
其他好文 时间:
2014-11-10 12:07:20
阅读次数:
152
T-SQL编写程序,采用辗转相除法求解两个正整数的最大公约数...
分类:
数据库 时间:
2014-11-08 18:17:50
阅读次数:
454
/**coyright(c)2014 龙城无泪*All rights reserved*文件名称 digui.c*作者:封尘之魂*完成日期:20141108*版本号V1.0*问题描述:求两个整数的最大公约数最小公倍数*输入描述:输入两个整数*输出描述:成功输出最大公约数最小公倍数*/#includeint main(){int m,n,q,t,j,k;scanf("%d%d",&m,&n);j=m...
分类:
其他好文 时间:
2014-11-07 20:49:05
阅读次数:
179
题目链接题意 : 给你两个数k,s,让你找k个数,这k个数都不大于s,并且这k个数的公约数大于1。思路 : 枚举一下素数倍数,求组合数,最后容斥原理求最终结果。当k=3,s=20的时候 :2 : 2 4 6 8 10 12 14 16 18 203 :3 6 9 12 15 185 :5 10 15...
分类:
其他好文 时间:
2014-11-07 20:36:34
阅读次数:
214
一、欧几里得算法名字非常高大上的不一定难,比如欧几里得算法。。。其实就是求两个正整数a, b的最大公约数(即gcd),亦称辗转相除法需要先知道一个定理:gcd(a, b) = gcd(b, amod b) (其中a mod b != 0) 或 b (其中a mod b == 0)证明:后半部分呢。。...
分类:
编程语言 时间:
2014-11-07 18:32:29
阅读次数:
215
从1到s选出k个数 他们的最大公约数大于1 求方案数
容斥 S(1)-S(2)+S(3) S(x)为选出k个数的公因子个数为x的数量
#include
#include
#include
using namespace std;
typedef long long LL;
const int maxn = 55;
int prime[maxn], vis[maxn];
int n, m;...
分类:
其他好文 时间:
2014-11-07 11:21:15
阅读次数:
146