C语言 最大公约数和最小公倍数 |
您所在的位置:网站首页 › 最大公约数和最小公倍数是什么意思 › C语言 最大公约数和最小公倍数 |
题目描述
给定两个正整数x和y,求这两个正整数的最大公约数和最小公倍数。 要求使用如下接口(不能写单独的gcd和lcm函数,不符合要求的一律算错): int get_gcdANDlcm(int x, int y, int *lcmptr); 函数返回最大公约数,lcmptr应该指向存储最小公倍数的对象。 输入输入包含多组数据。 每组数据由空格分开的两个正整数x和y组成。x和y均不超过4000。 输出对于每组输入,输出它们的最大公约数和最小公倍数,见样例。 样例输入 Copy3 6 4 8 样例输出 CopyGCD=3,LCM=6 GCD=4,LCM=8 代码 #include #include int get_gcdANDlcm(int x, int y, int *lcmptr) { int arr[2]; int t; arr[1]=x*y; if(x>y) { t=y;y=x;x=t; } while(x) { if(y%x==0) { arr[0]=x; break; } t=y; y=x; x=t%x; } int q; arr[1]=arr[1]/arr[0]; q=arr[0]; return q; } int main() { int x,g,y,a[2]={'\0'}; while(scanf("%d %d",&x,&y)!=EOF) { g=get_gcdANDlcm(x,y,a); printf("GCD=%d,LCM=%d\n",g,x*y/g); } return 0; } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |