最大公約数とC言語の最小公倍数 - 奇妙なインタフェース版

タイトル説明

与えられた2つの正の整数で、xおよびyは、二つの整数Nの最大公約数と最小公倍数を見つけます。

要件は、次のインターフェイスを使用します(数え間違っになります要件を満たしていない、別の関数GCDとLCMを記述することはできません)。

INT get_gcdANDlcm(int型のx、int型Y、INT * lcmptr)。

関数は最大公約数を返し、lcmptrは、オブジェクトストレージの最小公倍数を指す必要があります。

エントリー

入力データの複数のセットを含みます。

データの各セットはスペースで2つの正の整数xおよびy成分を分離しました。x及びyはより4,000以下です。

輸出

各入力、出力およびその最大公約数の最小公倍数のために、実施例を参照してください。

サンプル入力のコピー

3 6
4 8

サンプル出力のコピー

GCD = 3、LCM = 6
GCD = 4、LCM = 8

コード

#include <stdio.h>
#include<math.h> 
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;
}
公開された47元の記事 ウォン称賛29 ビュー1486

おすすめ

転載: blog.csdn.net/Qianzshuo/article/details/103758653