数论中的程序设计-培训.ppt

上传人:99****p 文档编号:1518335 上传时间:2019-03-04 格式:PPT 页数:43 大小:542KB
下载 相关 举报
数论中的程序设计-培训.ppt_第1页
第1页 / 共43页
数论中的程序设计-培训.ppt_第2页
第2页 / 共43页
数论中的程序设计-培训.ppt_第3页
第3页 / 共43页
数论中的程序设计-培训.ppt_第4页
第4页 / 共43页
数论中的程序设计-培训.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、数论中的程序设计 -培训沈云付上海大学计算机工程与科学学院主要内容1. 最大公因数与最小公倍数2. 求整系数一次不定方程 ax+by=c的解3. 求解模线性方程4. 求模 m的逆元素算法5. 模线性方程组与中国剩余定理6. 模取幂运算与素数测试7. 欧拉定理与 费马小定理8. 公钥密码与 RSA7. 实例研究1. 最大公因数与最小公倍数1 公约数和最大公约数的概念2 最大公约数的一种求法 分解因子3 最大公约数性质与欧几里德转辗相除法4 欧几里德转辗相除法5 欧几里德算法实现实例 求最大公因数问题描述:从输入文件中读取一组数据,求最大公因数。输入:输入有若干行。每一行上有两个整数 x, y,是

2、一组测试数据,他们之间用一个空格隔开。输出:对每一组测试数据,每行输出这两个整数的最大公因数。如无最大公因数,则标明 “no GCD”。输出样例:(6,11)=1(0,0) no GCD(5,0)=5输入样例: 6 110 05 01.1 公因数和最大公因数的概念公因数:如果 d是 a的因数并且也是 b的因数,则 d是 a与 b的公因数例: 30的正因数:1, 2, 3, 5, 6, 10, 15、 30;24的正因数: 1, 2, 3, 4, 6, 12, 24;24与 30的正公因数有: 1、 2、 3、 6。1是任意两个整数的公因数;最大公因数:两个不同时为 0的整数 a与 b的最大公因

3、数是其值为最大的公因数,记作 gcd(a, b)。gcd(24, 30) 6。 最大公约数的一种求法 分解因子因为 gcd(a, b) gcd(|a|, |b|),所以可考虑非负整数的情况。通过求因数,可求 a和 b的素数因子分解:a= , b=于是整数 a和 b的最大公因数为:gcd(a, b) 最大公因数性质性质:( 1) gcd(a, b) gcd( a, b)( 2) gcd(a, b) gcd(a + kb, b), k为任何整数( 3) gcd(a, b) gcd(b, a mod b)( 4)如 a是非零整数,那么 gcd(a, 0) |a| 欧几里德转辗相除法的依据:gcd(a

4、, b) gcd(b, a mod b) 可 求整数 a和 b的最大公因数 1.2 最小公倍数 公倍数:如果 m是 a的倍数并且也是 b的倍数,那么称 m是 a与 b的公倍数。 最小公倍数:两个非零整数 a与 b的最小公倍数是 a与 b的公倍数中数值最小正的数,记作 lcm(a, b)(或简写为 a, b)。 lcm(a, b) lcm(|a|, |b|) 通过 a和 b的标准分解,可以求出整数 a和 b的最小公倍数:lcm(a, b)=最小公倍数与最大公因数关系 1.3 欧儿里德算法 给定任意两个正整数 a和 b gcd(a, b)=结论:求最大公因数的递归程序用欧几里德转辗相除法构造一个求最大公因数的递归程序。输入:非负整数 a、 b返回: a和 b的最大公因数long gcd(long a, long b)long m;if (b=0) if (b=0) return a;else m=gcd(b, a%b);return m;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。