编程:求两个数的所有公约数

编程:求两个数的所有公约数
编程:求两个数的所有公约数

编程:求两个数的所有公约数

按下列要求编程(1)输入两个100以内的十进制正整数(2)求两个数的所有公约数(3)数据的输入和结果的输出都要有必要的提示且独占一行

程序设计思想:先用辗转法求出两个数的最大公约数,再求出最大公约数的所有约数并显示

DATA SEGMENT

BUFF DB 0DH,0AH,'$'

IN_MSG1 DB'PLEASE ENTER A NUMBER:',0DH,0AH,'$'

IN_MSG2 DB'PLEASE ENTER ANOTHER NUMBER:',0DH,0AH,'$'

OUT_MSG DB'THE COMMON NUMBER(S) IS(ARE):',0DH,0AH,'$'

LOAD DB'PRESS ANY KEY TO CONTINUE$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AX,OFFSET IN_MSG1 ; 提示输入第一个数据

CALL DISPMSG

CALL READSID ; 输入第一个数据

MOV BX,AX

MOV AX,OFFSET IN_MSG2 ; 提示输入第二个数据

CALL DISPMSG

CALL READSID ; 输入第二个数据

MOV CX,AX ; 保存到CX

CALL AGAIN

MOV AX,OFFSET OUT_MSG

CALL DISPMSG

MOV AX,CX

CALL DISPSID

AGAIN PROC

CMP BX,CX

JNL FRONT

XCHG BX,CX

FRONT: XOR DX,DX

MOV AX,BX

DIV CX

CMP DX,0

JZ EQUAL

MOV BX,CX

MOV CX,DX

JMP FRONT EQUAL: RET

AGAIN ENDP

DISPMSG PROC

MOV DX,AX

MOV AH,9

INT 21H

RET

DISPMSG ENDP

READSID PROC

MOV AH,1

INT 21H

MOV DH,AL

SUB DH,30H

MOV AH,1

INT 21H

CMP AL,0DH

JZ DONE1

SUB AL,30H

SHL DH,1

MOV DL,DH

SHL DH,1

SHL DH,1

ADD DH,DL

ADD DH,AL

DONE1:

MOV CL,DH

MOV DX,OFFSET BUFF MOV AH,9

INT 21H

MOV AL,CL

XOR AH,AH

RET

READSID ENDP DISPSID:

MOV BL,AL

MOV BH,1

L1:MOV AL,BL

XOR AH,AH

DIV BH

CMP AH,0

JNZ NEXT

MOV AL,BH

AAM

MOV CX,AX

ADD CH,30H

MOV DL,CH

MOV AH,2

INT 21H

ADD CL,30H

MOV DL,CL

MOV AH,2

INT 21H

MOV DX,OFFSET BUFF MOV AH,9

INT 21H

NEXT:INC BH

CMP BL,BH

JL DONE

JMP L1

DONE:MOV AH,4CH INT 21H

CODE ENDS

END START

最大公约数的三种算法 复杂度分析 时间计算

昆明理工大学信息工程与自动化学院学生实验报告 (2011 —2012 学年第 1 学期) 课程名称:算法设计与分析开课实验室:信自楼机房444 2011 年10月 12日 一、上机目的及内容 1.上机内容 求两个自然数m和n的最大公约数。 2.上机目的 (1)复习数据结构课程的相关知识,实现课程间的平滑过渡; (2)掌握并应用算法的数学分析和后验分析方法; (3)理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)至少设计出三个版本的求最大公约数算法; (2)对所设计的算法采用大O符号进行时间复杂性分析; (3)上机实现算法,并用计数法和计时法分别测算算法的运行时间; (4)通过分析对比,得出自己的结论。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件 四、实验方法、步骤(或:程序代码或操作过程) 实验采用三种方法求最大公约数

1、连续整数检测法。 2、欧几里得算法 3、分解质因数算法 根据实现提示写代码并分析代码的时间复杂度: 方法一: int f1(int m,int n) { int t; if(m>n)t=n; else t=m; while(t) { if(m%t==0&&n%t==0)break; else t=t-1; } return t; } 根据代码考虑最坏情况他们的最大公约数是1,循环做了t-1次,最好情况是只做了1次,可以得出O(n)=n/2; 方法二:int f2(int m,int n) { int r; r=m%n; while(r!=0) { m=n; n=r; r=m%n; } return n; } 根据代码辗转相除得到欧几里得的O(n)= log n 方法三: int f3(int m,int n) { int i=2,j=0,h=0; int a[N],b[N],c[N]; while(i

五年级:数学教案-最大公约数、最小公倍数的比较(参考文本)

( 数学教案 ) 学校:_________________________ 年级:_________________________ 教师:_________________________ 教案设计 / 精品文档 / 文字可改 五年级:数学教案-最大公约数、最小公倍数的比较(参考文Mathematics is a tool subject, it is the basis for learning other subjects, and it is also a subject that improves people's judgment, analysis, and comprehension abilities.

五年级:数学教案-最大公约数、最小公倍数的比较(参考文本) 教学目标 1.进一步巩固最大公约数和最小公倍数的计算方法. 2.掌握求两个数最大公约数和最小公倍数的相同点与不同点.教学重点 比较求两个数的最大公约数和最小公倍数的相同点和不同点.教学难点 区分求两个数的最大公约数和最小公倍数的计算方法. 教学步骤 一、铺垫孕伏. 出示下列各数:5 28 25 42

1.指名学生说出:这些数中,哪些能被2整除,哪些能被3整除,哪些能被5整除. 2.引导学生从这列数中选出分别符合下列条件的几组数,求出各组数的最大公约数和最小公倍数,并说明是怎么求出来的.(1)较大数是较小数倍数的. (2)两个数是互质数的. (3)两个数既不互质,较大数又不是较小数倍数的. 谈话引入:求两个数的最大公约数和最小公倍数都用分解质因数法,但它们的计算方法不完全一样.这节课我们就来学习“最大公约数和最小公倍数的比较”的内容. (板书:最大公约数、最小公倍数的比较) 二、探究新知.【演示课件“比较”】 (一)教学例5 求28和42的最大公约数和最小公倍数 1、学生板演. 2、整理方法: 求28和42的最大公约数,先用短除形式分解质因数,直到两

最大公约数的算法

. 1、查找约数法. 先分别找出每个数的所有约数,再从两个数的约数中找出公有的约数,其中最大的一个就是最大公约数. 例如,求12和30的最大公约数. 12的约数有:1、2、3、4、6、12; 30的约数有:1、2、3、5、6、10、15、30. 12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数. 2 更相减损术 《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 翻译成现代语言如下: 第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。 第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。 则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。 其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法。 3、辗转相除法. 当两个数都较大时,采用辗转相除法比较方便.其方法是: 以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数. 例如:求4453和5767的最大公约数时,可作如下除法. 5767÷4453=1余1314 4453÷1314=3余511 1314÷511=2余292 511÷292=1余219 292÷219=1余73

219÷73=3 于是得知,5767和4453的最大公约数是73. 辗转相除法适用比较广,比短除法要好得多,它能保证求出任意两个数的最大公约数.4、求差判定法. 如果两个数相差不大,可以用大数减去小数,所得的差与小数的最大公约数就是原来两个数的最大公约数.例如:求78和60的最大公约数.78-60=18,18和60的最大公约数是6,所以78和60的最大公约数是6. 如果两个数相差较大,可以用大数减去小数的若干倍,一直减到差比小数小为止,差和小数的最大公约数就是原来两数的最大公约数.例如:求92和16的最大公约数.92-16=76,76-16=60,60-16=44,44-16=28,28-16=12,12和16的最大公约数是4,所以92和16的最大公约数就是4. 5、分解因式法. 先分别把两个数分解质因数,再找出它们全部公有的质因数,然后把这些公有质因数相乘,得到的积就是这两个数的最大公约数. 例如:求125和300的最大公约数.因为125=5×5×5,300=2×2×3×5×5,所以125和300的最大公约数是5×5=25. 6、短除法. 为了简便,将两个数的分解过程用同一个短除法来表示,那么最大公约数就是所有除数的乘积. 例如:求180和324的最大公约数. 因为: 5和9互质,所以180和324的最大公约数是4×9=36. 7、除法法. 当两个数中较小的数是质数时,可采用除法求解.即用较大的数除以较小的数,如果能够整除,则较小的数是这两个数的最大公约数. 例如:求19和152,13和273的最大公约数.因为152÷19=8,273÷13=21.(19和13都是质数.)所以19和152的最大公约数是19,13和273的最大公约数是13.

小学数学竞赛(五)最大公约数的应用

(五)最大公约数的应用 121.把长方形纸裁成正方形,张数要最少,那么正方形的边就要取最长,即取120,80的最大公约数,(120,80)=40,正方形边长应为40厘米。 那么,至少能裁: (120÷40)×(80÷40)=3×2=6(张) 「几个数公有的约数叫做这几个数的公约数。如120,80两个数的公约数有2,4,5,8,10,20,40。 几个数公有的约数中最大的一个叫做最大公约数。对自然数a1,a2,… a n的最大公约数用符号(a1,a2,…a n)表示。如120,80的最大公约数是40,记作: (120,80)=40 求最大公约数的方法: 求几个数的最大公约数,先用这几个数的公约数(一般是公有的质因数),从小到大连续去除,一直除到所得的商只有公约数1为止;然后把所有的除数连乘起来,所得的积就是这几个数的最大公约数。」 如求12,18,54的最大公约数: (12,18,54)=2×3=6 122.先把两个积的乘数分别分解质因数,然后把两个积公有的质因数连乘起来,所得的积就是它们的最大公约数。 360×473=2×2×2×5×9×11×43 172×361=2×2×43×19×19 所以,两个积的最大公约数是2×2×43=172 123.

三种数量不等的茶叶价值相等,分装后,每袋的价值也要相等,那么三种茶叶分装的袋数也相等。又要使每袋的价格最低,这就要使袋数尽量多。因此,袋数就是165、198和242的最大公约数。 所以,三种茶叶各分装11袋;一等茶每袋15斤,二等茶每袋18斤,三等茶每袋22斤。 124.104055÷6937=15,根据最大公约数的定义,15是这两个数分别除以它们的最大公约数所得商的和,两个商是互质数。将15分成两个互质的数有1,14;2,13;4,11;7,8等四组,由此可得四组不同的解答: (1)两个数分别是6937,6937×14=97118; (2)6937×2=13874,6937×13=90181; (3)6937×4=27748,6937×11=76307; (4)6937×7=48559,6937×8=55496。 125.分掉铅笔433-13=420(支),橡皮260-8=252(块), 学生人数是420和252的公约数。先求出(420,252)=84。小学生数应为84的约数,84的约数中大于30,小于50的数只有42,所以小学生数为42人。 「公约数的性质:两个数或几个数的所有公约数,也是它们最大公约数的约数。例如210和462的公约数有:2,3,6,7,14,21,42,它们的最大公约数是42;则2,3,6,7,14,21,42都是42的约数。」 126.分母是1001的最简分数有720个。 因为,1001=7×11×13,当分子是7,11,13的倍数时,分数的分子与分母有公约数,就不是最简分数。在小于分母的1000个自然数中: 1000÷7=142…6,有7的倍数142个; 1000÷11=90…10,有11的倍数90个; 1000÷13=76…12,有13的倍数76个;

c语言程序设计-求两个数最大公约数

1,写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。这两个数由键盘输入。 程序设计: #include int hcf(int x,int y) {int t; if(x

#include void g_two(double a,double b,double c) {double x1,x2; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("方程的两个根为:x1=%f\nx2=%f\n",x1,x2); } void g_one(double a,double b,double c) {double x; x=(-b)/(2*a); printf("方程的两个根为:x1=x2=%f\n",x); } void g_zone(double a,double b,double c) { printf("无解\n"); } void main() {void g_two(double,double,double); void g_one(double,double,double); void g_zone(double,double,double); double a,b,c,t; printf("请输入a、b、c的值:"); scanf("%lf%lf%lf",&a,&b,&c); t=b*b-4*a*c; if(t>0) g_two(a,b,c); else if(t==0) g_one(a,b,c); else g_zone(a,b,c); } 运行结果:

matlab最大公约数 三种算法

算法设计与分析 11信本余启盛 118632011004 一、上机目的及内容 1.上机内容 求两个自然数m和n的最大公约数。 2.上机目的 (1)复习数据结构课程的相关知识,实现课程间的平滑过渡; (2)掌握并应用算法的数学分析和后验分析方法; (3)理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。 二、实验原理及基本技术路线图 (1)至少设计出三个版本的求最大公约数算法; (2)对所设计的算法采用大O符号进行时间复杂性分析; (3)上机实现算法,并用计数法和计时法分别测算算法的运行时间; (4)通过分析对比,得出自己的结论。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件matlab .2008 四、实验方法、步骤(或:程序代码或操作过程) 实验采用三种方法求最大公约数 1、连续整数检测法。 2、欧几里得算法 3、蛮力法(短除法) 根据实现提示写代码并分析代码的时间复杂度: 算法一:连续整数检测法。 CommFactor1 输入:两个自然数m和n 输出:m和n的最大公约数 1.判断m和n哪个数小,t=min(m,n) 2.如果m%t==0&&n%t==0 ,结束 2.1 如果t不是m和n的公因子,则t=t-1; 3. 输出t ;

根据代码考虑最坏情况他们的最大公约数是1,循环做了t-1次,最好情况是只做了1次,可以得出O(n)=n/2; 算法二:欧几里德算法 CommFactor2 输入:两个自然数m和n 输出:m和n的最大公约数 1. r = m % n; 2. 循环直到r 等于0 2.1 m = n; 2.2 n = r; 2.3 r = m % n; 3. 输出n ; 根据代码辗转相除得到欧几里得的: O(n)= log n 算法三:蛮力法(短除法) CommFactor3 输入:两个自然数m和n 输出:m和n的最大公约数 1.factor=1; 2.循环变量i从2-min(m,n),执行下述操作: 2.1 如果i是m和n的公因子,则执行下述操作: 2.1.1 factor=factor*i; 2.1.2 m = m / i; n = n / i; 2.2 如果i不是m和n的公因子,则i=i+1; 3. 输出factor; 根据代码考虑最坏情况他们的最大公约数,循环做了i-1次;最好情况是只做了1次,可以得出: O(n)=n/2; MATLAB程序代码: main.m x=fix(rand(1,1000)*1000); y=fix(rand(1,1000)*1000); for i=1:1000 A(i)=CommFactor2(x(i),y(i)); end x=x'; y=y';

小学五年级:数学教案-最大公约数

新修订小学阶段原创精品配套教材 数学教案-最大公约数教材定制 / 提高课堂效率 /内容可修改 Math lesson plan-greatest common divisor 教师:风老师 风顺第二小学 编订:FoonShion教育

数学教案-最大公约数 教学目标 1.使学生掌握公约数、最大公约数、互质数的概念. 2.使学生初步掌握求两个数的最大公约数的一般方法.教学重点 理解公约数、最大公约数、互质数的概念. 教学难点 掌握求两个数的最大公约数的一般方法. 教学步骤 一、铺垫孕伏. 1.说出什么是约数、质因数、分解质因数. 2.求18、20、27的约数 3.把18、20、27分解质因数 二、探究新知. 教师引入:我们已经会求一个数的约数了,这节课我们学习怎样求两个数公有的约数. (一)教学例1【演示课件“最大公约数”】

8和12各有哪些约数,它们公有的约数有哪几个?最大的公有的约数是多少? 板书:8的全部约数:1、2、4、8 12的全部约数:1、2、3、4、6、12 学生交流:发现了什么? 学生汇报:8和12公有的约数是:1、2、4 最大的公有的约数是:4.(教师板书) 1.总结概念:8和12公有的约数,叫做8和12的公约数. 1、2、4是8和12的公约数.公约数中最大的一个叫做最大公约数,4是8和12的最大公约数. 2.阅读教材,理解公约数、最大公约数的意义. 3.反馈练习:把15和18的约数、公约数分别填在下面的圈里再找出它们的最大公约数. (二)教学互质数【演示课件“互质数”】 1.5和7的公约数和最大公约数各是多少?7和9呢? 5的约数:1、5 7的约数:1、7 7的约数:1、7 9的约数:1、3、9 5和7的公约数:1 7和9的公约数:1

c++实现计算任意多个三位数的最大公约数,直到输入-999为止,调用子函数求最大公约数

#pragma warning(disable:4786) #include #include #include #include using namespace std; #ifndef SYSOUT const char *SYSOUT = "999"; //退出标示 const int SYSFAILED = -1; //系统错误码 const int SYSNUMLENGTH = 3; //输入的数据长度限制 #endif //判断用户输入字符是否为数字 bool IsAllNum(const char* resStr); //计算最大公约数 int GetMaxDivissor(set *pSetNum,int nMin); //该函数去除输入前端“0” void GetStingTrim(string *pStr); int main() { //----------------------------------------------------------------------------------------- //程序变量 char szNum[4] = {0}; set setNum; //用户输入数据数组 string buffer; int nMax = 0; //用户输入最大数 int nMin = 0; //用户输入最小数 bool isNum = false; //是否为数字 int count = 0; //记录用户输入数据量 int nTmp = 0; //用于存储临时数据 char szNotice[100] = {0}; //----------------------------------------------------------------------------------------- //用户输入控制 while(strcmp(buffer.c_str(),SYSOUT) != 0) { buffer = ""; memset(szNotice,0,sizeof(szNotice)); sprintf(szNotice,"Please Enter Your %dNum:",count+1); cout<

最大公约数和最小公倍数怎么求

最大公约数和最小公倍数怎么求? 首先把两个数的质因数写出来,最小公倍数等于它们所有的质因数的乘积(如果有几个质因数相同,则比较两数中哪个数有该质因数的个数较多,乘较多的次数)。 比如:求45和30的最小公倍数。 45=3*3*5 30=2*3*5 不同的质因数是2,3,5。3是他们两者都有的质因数,由于45有两个3,30只有一个3,所以计算最小公倍数的时候乘两个3. 最小公倍数等于2*3*3*5=90 又如:计算36和270的最小公倍数。 36=2*2*3*3 270=2*3*3*3*5 不同的质因数是5。2这个质因数在36中比较多,为两个,所以乘两次;3这个质因数在270个比较多,为三个,所以乘三次。 最小公倍数等于2*2*3*3*3*5=540 最大公约数和最小公倍数<练习题> 1.有一级茶叶96克,二级茶叶156克,三级茶叶240克,价值相等.现将这三种茶叶分别等分装袋(均为整数克),每袋价值相等,要使每袋价值最低应如何装袋? 2.a、b两数的最大公约数是12,已知a有8个约数,b有9个约数,求a与b. 3.两个数的积是6912,最大公约数是24,求:(1)它们的最小公倍数;(2)满足已知条件的自然数是哪几组? 4.甲、乙、丙三个学生定期向某老师求教,甲每4天去一次,乙每6天去一次,丙每9天去一次,如果这一次他们三人是3月23日都在这个老师家见面,那么下一次三人都在这个老师家见面的时间是几月几日? 5.求被5除余2,被6除余3,被7除4的大于1000、小于1500的所有自然数. 6.某个数与36的最大公约数是12,与36的最小公倍数是180,求这个数. 7.有三个自然数a、b、c,a与b的最大公约数是2;b和c的最大公约数是4;a和c的最大公约数是6;a、b、c三个数的最小公倍数是60,求这三个数的最小的和是多少? 答案仅供参考: 1.三种数量不等的茶叶价值相等,等分装袋后,每袋价值仍相等,由于每种茶叶的总价值相等,每袋价值也要相等,所以这三种茶叶分装的袋数也一定相同.为了使每袋价值最低,就应使袋数尽可能多,

小学数学解题方法解题技巧之最大公约数法

第一章小学数学解题方法解题技巧之最大公约数法 通过计算出几个数的最大公约数来解题的方法,叫做最大公约数法。 例1 甲班有42名学生,乙班有48名学生,现在要把这两个班的学生平均分成若干个小组,并且使每个小组都是同一个班的学生。每个小组最多有多少名学生?(适于六年级程度) 解:要使每个小组都是同一个班的学生,并且要使每个小组的人数尽可能多,就要求出42和48的最大公约数: 2×3=6 42和48的最大公约数是6。 答:每个小组最多能有6名学生。 例2 有一张长150厘米、宽60厘米的长方形纸板,要把它分割成若干个面积最大,井已面积相等的正方形。能分割成多少个正方形?(适于六年级程度) 解:因为分割成的正方形的面积最大,并且面积相等,所以正方形的边长应是1 50和60的最大公约数。 求出150和60的最大公约数: 2×3×5=30 150和60的最大公约数是30,即正方形的边长是30厘米。

看上面的短除式中,150、60除以2之后,再除以3、5,最后的商是5和2。这说明,当正方形的边长是30厘米时,长方形的长150厘米中含有5个30厘米,宽6 0厘米中含有2个30厘米。 所以,这个长方形能分割成正方形: 5×2=10(个) 答:能分割成10个正方形。 例3 有一个长方体的方木,长是3.25米,宽是1.75米,厚是0.75米。如果将这块方木截成体积相等的小正方体木块,并使每个小正方体木块尽可能大。小木块的棱长是多少?可以截成多少块这样的小木块?(适于六年级程度) 解:3.25米=325厘米,1.75米=175厘米,0.75米=75厘米,此题实际是求325、175和75的最大公约数。 5×5=25 325、175和75的最大公约数是25,即小正方体木块的棱长是25厘米。 因为75、175、325除以5得商15、35、65,15、35、65再除以5,最后的商是3、7、13,而小正方体木块的棱长是25厘米,所以,在75厘米中包含3个25厘米,在175厘米中包含7个25厘米,在325厘米中包含13个25厘米。 可以截成棱长是25厘米的小木块: 3×7×13=273(块) 答:小正方体木块的棱长是25厘米,可以截成这样大的正方体273块。 例4 有三根绳子,第一根长45米,第二根长60米,第三根长75米。现在要把三根长绳截成长度相等的小段。每段最长是多少米?一共可以截成多少段?(适于六年级程度)

用迭代法求两个数的最大公约数和最小公倍数

用迭代法求两个数的最大公约数和最小公倍数 化工09110605 摘要:迭代法是一种循环控制语句和循环结构程序的设计方法。在计算机解决问题的时候,总希望从复杂的问题中找到规律,并归结为简单问题的重复,发挥其擅长重复运算的特点,让它重复执行一组语句,直到满足给定条件为止。因此,c语言提供了重复操作的语句,由这些语句构成的程序称为循环结构。本文就是采用迭代法,利用c语言中提供的重复语句,求得两个数的最大公约数和最小公倍数。 关键词:循环语句;循环结构;迭代法;最大公约数和最小公倍数 Iterative Method with the greatest common divisor and least common multiple of two numbers Chemical 09110605 W ANG Meng Abstract: The iterative method is a loop control statement and loop structure design process.When the computer to solve the problem, hoping to find from the law of complex issues and boil down to a simple repetition of questions, to play the good characteristics of repeat operation, let it repeat a set of statements until the date that satisfies the given conditions. Therefore, c language repeat the statement provided by these statements constitute the program is called loop structure. This is the iterative method, using c language provided by the repeated statement, obtained the greatest common divisor and least common multiple of two numbers. Key words:loop; loop structure; iteration; greatest common divisor and least common multiple

Java算法最大公约数和最小公倍数

Java算法最大公约数和最小公倍数 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。 最大公约数: public class CommonDivisor{ public static void main(String args[]) { commonDivisor(24,32); } static int commonDivisor(int M, int N) { if(N<0||M<0) { System.out.println("ERROR!"); return -1; } if(N==0) { System.out.println("the biggest common divisor is :"+M); return M; } return commonDivisor(N,M%N); } } 最小公倍数和最大公约数: import java.util.Scanner; public class CandC { //下面的方法是求出最大公约数 public static int gcd(int m, int n) {

while (true) { if ((m = m % n) == 0) return n; if ((n = n % m) == 0) return m; } } public static void main(String args[]) throws Exception { //取得输入值 //Scanner chin = new Scanner(System.in); //int a = chin.nextInt(), b = chin.nextInt(); int a=23; int b=32; int c = gcd(a, b); System.out.println("最小公倍数:" + a * b / c + "\n最大公约数:" + c); } }

小学五年级数学最大公约数和最小公倍数的比较

最大公约数和最小公倍数的比较 五年级数学教案 教学目标 ( 一 ) 进一步理解并掌握最大公约数和最小公倍数的概念,分清求最大公约数和最小公倍数的相同点和不同点。 ( 二 ) 培养学生仔细、认真的做题习惯和比较的思维方法。 ( 三 ) 培养学生观察、分析、比较的能力。 教学重点和难点 最大公约数和最小公倍数异同点的比较。 教学用具

教具:小黑板,投影片。 学具:判断卡,选择卡。 教学过程设计 ( 一 ) 复习准备 教师: ①什么叫最大公约数和最小公倍数? ②怎样求最大公约数和最小公倍数? ③求下面各题的最大公约数和最小公倍数?( 口答 ) 8 和 16 13 和

2 和 9 7 和 15 教师:对上面几道题你是怎么想的?各有什么特点?你能发现什么规律?明确: ①两个数有倍数关系,最大公约数最较小数,最小公倍数是较大数。 ②两个数互质,最大公约数是 1 ,最小公倍数是两个数乘积。 ( 二 ) 学习新课 1 .出示例

。 求 28 和 42 的最大公约数和最小公倍数。( 要求学生独立完成。 ) 学生口述教师板书。 28 和 42 的最大公约数是: 2 × 7=14 28

42 的最小公倍数是 2 × 7 × 2 × 3=84 教师:观察上面两道题,谁能说出求最大公约数和求最小公倍数有什么地方相同?什么地方不同? ( 讨论 ) 在讨论的基础上,总结出下面的结论。 教师:为什么求最大公约数只要把所有除数乘起来,而求最小公倍数就要把所有除数和商都乘起来呢? 明确:求最大公约数是两个数公有质因数的积;求最小公倍数既要包含两个数公有质因数,又要包括各自独有的质因数。

最大公约数的三种算法复杂度分析时间计算

理工大学信息工程与自动化学院学生实验报告 (2011 —2012 学年第 1 学期) 课程名称:算法设计与分析开课实验室:信自楼机房444 2011 年10月 12日 一、上机目的及容 1.上机容 求两个自然数m和n的最大公约数。 2.上机目的 (1)复习数据结构课程的相关知识,实现课程间的平滑过渡; (2)掌握并应用算法的数学分析和后验分析方法; (3)理解这样一个观点:不同的算法能够解决相同的问题,这些算法的解题思路不同,复杂程度不同,解题效率也不同。 二、实验原理及基本技术路线图(方框原理图或程序流程图) (1)至少设计出三个版本的求最大公约数算法; (2)对所设计的算法采用大O符号进行时间复杂性分析; (3)上机实现算法,并用计数法和计时法分别测算算法的运行时间; (4)通过分析对比,得出自己的结论。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) 1台PC及VISUAL C++6.0软件 四、实验方法、步骤(或:程序代码或操作过程) 实验采用三种方法求最大公约数 1、连续整数检测法。

根据实现提示写代码并分析代码的时间复杂度: 方法一: int f1(int m,int n) { int t; if(m>n)t=n; else t=m; while(t) { if(m%t==0&&n%t==0)break; else t=t-1; } return t; } 根据代码考虑最坏情况他们的最大公约数是1,循环做了t-1次,最好情况是只做了1次,可以得出O(n)=n/2; 方法二:int f2(int m,int n) { int r; r=m%n; while(r!=0) { m=n; n=r; r=m%n; } return n; } 根据代码辗转相除得到欧几里得的O(n)= log n 方法三: int f3(int m,int n) { int i=2,j=0,h=0; int a[N],b[N],c[N]; while(i

2六年级下册数学讲义-小学奥数精讲精练:第十讲 最大公约数与最小公倍数(无答案)全国通用

第十讲最大公约数与最小公倍数 如果一个数同时是几个数的约数,那么我们就称它为这几个数的公约数。几个数的公约数中最大的一个,称为这几个数的最大公约数。 如果一个数同时是几个数的倍数,那么我们就称它是这几个数的公倍数。几个数的公倍数中最小的一个,称为这几个数的最小公倍数。 求最大公约数和最小公倍数一般有以下几种方法。 1.短除法: 例 1 求 8,12,18 的最大公约数和最小公倍数。 解:求最大公约数和最小公倍数的最常用的办法就是短除法。具体作法如下: 8、12、18 的最大公约数为 2。 8、12、18 的最小公倍数为2×2×3×2×3=72 我们习惯上用(8,12,18)表示,8,12,18 的最大公约数,即:

(8,12,18)=2 用[8,12,18]表示 8,12,18 的最小公倍数,即 [8,12,18]=72 短除法的长处在于它可同时求出最大公约数和最小公倍数。在求三个以上数的最大公约数和最小公倍数时,尤其简便。 2.分解质因数法: 分解质因数是求最大公约数的最直接的方法。但往往被忽视。 解:化简分数实际上就是求分子分母的最大公约数。如果用短除法,就会发现很难找出其公有的质因数。但很容易看出 6933 是3 的倍数,25421 是11 的倍数。 实际上,只要将分子分母分解质因数,就很容易看到结果。6933 =3×2311 25421=11×2311 无论是短除法,还是分解质因数法,在质因数较大时,都会觉得困难。这时就需要用新的方法。 3.辗转相除法:

例 3 从一张长 2002 毫米、宽 847 毫米的长方形纸片上,剪下一个边长尽可能大的正方形 , 如果剩 下 的部分 不是 正 方形 ,那么 在剩下的纸 毫米。 解:剪的过程如图所示 第一、二次剪下 847×847 平方毫米的正方形。 第三、四次剪下边长 308 毫米的正方形。 第五次剪下边长 231 毫米的正方形。 第六、七,八次剪下边长 77 毫米的正方形。 以上的解题过程,实际上给出了求最大公约数的另一个办法——辗转相除法。 以上过程可用算式表示如下: 2002=847×2+308 847=308×2+231 308=231×1+77

第五讲 最大公约数与最小公倍数

第五讲 最大公约数与最小公倍数 【知识导引】 一、约数的概念与最大公约数 约数又叫因数(在正整数范围内)整数a 能被整数b 整除,a 叫做b 的倍数,b 就叫做a 的约数。最大公约数:如果一个数既是数a 的约数,又是数b 的约数,称为[a,b]的约数。几个数公有的因数,叫做这几个数的公因数,其中最大的一个叫做这几个数的最大公因数。 1. 求最大公约数的方法 ①分解质因数法:先分解质因数,然后把相同的因数连乘起来。 例如:2313711=??,22252237=??,所以(231,252)3721=?=; ②短除法:先找出所有共有的约数,然后相乘。例如:21812 39632 ,所以(12,18)236=?=; ③辗转相除法:每一次都用除数和余数相除,能够整除的那个余数,就是所求的最大公约数。用辗转相除法求两个数的最大公约数的步骤如下:先用小的一个数除大的一个数,得第一个余数;再用第一个余数除小的一个数,得第二个余数;又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个余数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质的)。例如,求600和1515的最大公约数:151********÷= ;6003151285÷= ;315285130÷= ;28530915÷= ;301520÷= ;所以1515和600的最大公约数是15。 2. 最大公约数的性质 ①几个数都除以它们的最大公约数,所得的几个商是互质数; ②几个数的公约数,都是这几个数的最大公约数的约数; ③几个数都乘以一个自然数n ,所得的积的最大公约数等于这几个数的最大公约数乘以n 。 3. 求一组分数的最大公约数 先把带分数化成假分数,其他分数不变;求出各个分数的分母的最小公倍数a ;求 出各个分数的分子的最大公约数b ;b a 即为所求。 二、倍数的概念与最小公倍数 对于整数m ,能被n 整除(n/m ),那么m 就是n 的倍数。如15能够被3或5整除,我们就说15是3的倍数,也是5的倍数。几个数公有的倍数叫做这几个数的公倍数,其中最小的一个叫做这几个数的最小公倍数。

小学六年级最大公约数与最小公倍数复习题完整版

小学六年级最大公约数与最小公倍数复习题集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

小学六年级数学总复习资料(三)【最大公约数与最小公倍数】 班级:姓名: 一、填空: 1、如果自然数A除以自然数B商是17,那么A与B的最大公约数是 (),最小公倍数是()。 2、最小质数与最小合数的最大公约数是(),最小公倍数是()。 3、能被5、7、16整除的最小自然数是()。 4、⑴(7、8)=(),[7,8 ] =()⑵(25,15)=(), [25、15 ]=() ⑶(140,35)=(),[140,35 ]=()⑷(24,36)=(), [24、36 ]=() ⑸(3,4,5)=(),[3,4,5 ]=()⑹(4,8,16)=(),[4,8,16 ]=() 4、5和12的最小公倍数减去()就等于它们的最大公约数。91和13的最小公倍数是它们最大公约数的()倍。 5、已知两个互质数的最小公倍数是153,这两个互质数是()和()。 6、甲数=2×3×5×7,乙数=2×3×11,甲乙两数的最大公约数是(),最小公倍数是()。 7、3个连续自然数的最小公倍数是60,这三个数是()、()和()。 8、被2、3、5除,结果都余1的最小整数是(),最小三位整数是()。 9、一筐苹果4个4个拿,6个6个拿,或者8个8个拿都正好拿完,这筐苹果最少有()个。 10、三个连续偶数的和是42,这三个数的最大公约数是()。 11、三个不同质数的最小公倍数是105,这三个质数是()、()和()。

12、自然数m和n,n= m+1,m和n的最大公约数是(),最小公倍数是()。 13、把自然数a与b分解质因数,得到a=2×5×7×m,b=3×5×m ,如果a与b的最小公倍数是2730,那么m = ()。 14、(273,231,117)=(),[273,231,117]=() 15、三个数的和是312,这三个数分别能被7、8、9整除,而且商相同。这三 个数分别是()、()和()。 16、已知(A,40)=8,[A,40]=80,那么A=()。 17、找一个与众不同的数(三个方法)并说明理由):1、2、3、5、7、9、15 1:选,因为 2:选,因为 3:选,因为 18、按要求写互质数 两个都是质数()和();两个都是合数()和();一个质数和一个奇数()和();一个偶数5和一个合数()和();一个质数和一个合数 ()和();一个偶数和一个合数()和()。 二、解决下列的问题: 1、有一行数:1,1,2,3,5,8,13,21,34,55……,从第三个数开始,每个数都是前两个数的和,在前100个数中,偶数有多少个 2、一个长方形的长和宽都是自然数,面积是36平方米,这样的形状不同的长方形共有多少种 3、一种长方形的地砖,长24厘米,宽16厘米,用这种砖铺一个正方形,至少需多少块砖 4、有一个长80厘米,宽60厘米,高115厘米的长方体储冰容器,往里面装入大小相同的立方体冰块,这个容器最少能装多少数量冰块 5、已知某小学六年级学生超过100人,而不足140人。将他们按每组12人分组,多3人;按每组8人分,也多3人。这个学校六年级学生多少

相关文档
最新文档