给定两个正整数m=630和n=675.利用辗转相除算法,求它们的最小公倍数。

题目
给定两个正整数m=630和n=675.利用辗转相除算法,求它们的最小公倍数。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

请编写函数fun,它的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量bei所指的变量中,最大公约数放在指针变量yue所指的变量中。

注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

vOid fun(int m,int n,int*bei,int*yue)

{int s=l,i;

if(m>n){s=m;m=n;n=S;}

for(i=2,s=1;i<m i++)

if((m%i=0)&&(n%i=0))

{

}

*yue=s;

*bei=S*m*n;

}

main( )

{int a,b,beishu,yueshu;

chscr( );

printf("please input a,b:");scanf("%d,%d,"&a,&b);

fun(a,b,&beishu,&yueshu);

printf("a,b beishu:%d\n",beishu);

printf("a,b yueshu:%d\n",Yueshu);

}


正确答案:void fun(int mint nint*beiint*yue) {int s=li; if(m>n){s=m;m=n;n=s;} for(i=2s=1;im;i++) if((m%i==0)&&(n%i==0)) {m=m/i; n=n/i; S=s*i: i=1: } *yue=s;*bei=s*m*n; }
void fun(int m,int n,int*bei,int*yue) {int s=l,i; if(m>n){s=m;m=n;n=s;} for(i=2,s=1;im;i++) if((m%i==0)&&(n%i==0)) {m=m/i; n=n/i; S=s*i: i=1: } *yue=s;*bei=s*m*n; } 解析:本题考查编程解决一般数学问题的能力。本题函数fun的实现了拐除法,在2~ m之间从小到大依次取数i同时整除m和n,若能整除,则累乘到s中,最后的s就是最大公约数,s*m*n就是最小公倍数。

第2题:

阅读以下说明和流程图,回答问题1-2,将解答填入对应的解答栏内。

[说明]

下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和 n,假定m大于等于n,算法的主要步骤为:

(1)以n除m并令r为所得的余数;

(2)若r等于0,算法结束;n即为所求;

(3)将n和r分别赋给m和n,返回步骤(1)。

[流程图]

[问题1] 将流程图中的(1)~(4)处补充完整。

[问题2] 若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。


正确答案:[问题1] (1) n>m或nm或其它等效形式 (2) m←t (3) n←r (4) m%n [问题2] (5) 1
[问题1] (1) n>m或nm或其它等效形式 (2) m←t (3) n←r (4) m%n [问题2] (5) 1 解析:(1)~(2)当n的值大于(等于)m时,应交换两者的值,再使用欧几里得算法;
(3)~(4)略;
(5)m,n和r在执行循环A前后的值分别为:

第3题:

设M(m,n)是抛物线上的一点(m、n为正整数),且它位于对称轴的右侧.若以M、B、O、A为顶点的四边形四条边的长度是四个连续的正整数,求点M的坐标;


正确答案:

 

第4题:

给定两个正整数m=126和n=198,利用辗转相除算法,求它们的最小公倍数,并写出求解过程。


答案:
解析:
两个整数的最小公倍数=两整数的乘积÷最大公约数 求最大公约数的辗转相除法算法:
有两整数m和n(m<n):
①时m得余数c;
②若c=0,则m即为两数的最大公约数;
③若c≠0,则n=m,m=c,再回去执行①。
求126和198的最大公约数过程为:
①198÷126,余72;
②126÷72,余54;
③72÷54,余18;
④54÷18余0。因此,18即为最大公约数。
最小公倍数=两整数的乘积÷最大公约数
即:最小公倍数为=198×126÷18=1386。

第5题:

请补充main函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。

例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填人所编写的若干表达式或语句。

试题程序:

include<stdlib.h>

include<stdio.h>

void main

{

int a,b,numl,num2,t;

system("CLS"):

printf("\nInput two numbers:\n");

scanf("%d,%d",&numl,&num2);

if(numl<num2)

{

a=num2;

b=num1:

}

else

{

a=num1;

b=num2;

}

while(【1】)

{

t=【2】

a=b;

b=t:

}

printf(“greatest common divisor:

%d\n",a);

printf("least common multiple:

%d\n",【3】;

}


正确答案:

【1】b!=0【2】a%b[3]numl*num2/a

【解析】由程序可知,变量b中存放两个正整数中较小的那个数,while循环求两个正整数的公约数。因此【1】填“b!=0”;【2】填“a%b”.【3】处是求两个正整数最小公倍数的表达式,因此【3】填“numl*num2/a”。


第6题:

设M和N为正整数,且M>2,N>2,MN<2(M+N),满足上述条件的例(M,N)共有()对。A.3B.5C.6D.7

设M和N为正整数,且M>2,N>2,MN<2(M+N),满足上述条件的例(M,N)共有()对。

A.3

B.5

C.6

D.7


正确答案:B

第7题:

请补充main函数,该函数的功能是:输入两个正整数m和n,求这两个数的最大公约和最小公倍数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

main ( )

{

int a, b, n, m, t;

clrscr ();

printf ("\nInput two numbers: \n");

scanf ("%d, %d", &n, &m);

if (n<m)

{

a=m;

b=n;

}

else

{

a=n;

b=m;

}

while(【 】)

{

t=【 】

a=b;

b=t;

}

printf ("greatest con. non divisor:

%d\n", a);

printf ("least common multiple:

%d\n",【 】);

}


正确答案:b!=0 a%b; n*m/a
b!=0 a%b; n*m/a 解析:第一空:本题考查求最大公约数和最小公倍数的方法。变量a保存两数中较大着,变量b保存较小者,采用循环的方法求解最大公约数,循环结束条件是b等于0。第二空:求解最大公约数的思路是,将a对b求余,如果余数为0, 则b即为两数的最大公约数,如果余数不为0,则将b赋给a,余数赋给b,继续将a对b求余,如此循环,直到余数为0。第三空:最小公倍数等于两数的乘积除以最大公倍数。

第8题:

T(n)=O(f(n))中,函数O()的正确含义为

A.T(n)为f(n)的函数

B.T(n)为n的函数

C.存在足够大的正整数M,使得T(n)≤M×f(n)

D.存在足够大的正整数M,使得M×f(n)≤T(n)


正确答案:C

第9题:

设M和N为正整数,且 M>2 ,N>2,MN<2(M+N),满足上述条件的例(M,N)共有( )对。

A.3
B.5
C.6
D.7

答案:B
解析:

第10题:

设{an}为数列,对于“存在正数肘,对任意正整数n,有
的否定(即数列{an}无界)是( )。

A、存在正数M,存在正整数n,使得|an|>M
B、对任意正数M,存在正整数n,使得|an|>M
C、存在正数M,对任意正整数n,有|an|>M
D、对任意正数M以及任意正整数n,有|an|>M

答案:B
解析:
对任意正数M,存在正整数n,使得

则称数列{an}无界.

更多相关问题