C言語は最大公約数と最小公倍数を求める(構想がはっきりしている+開拓する)


最大公約数の求め方
まずその一般的な求め方(ユークリッドアルゴリズム):AとBの2つの数が存在すると仮定し、A%Bの結果が0でなければ、AとBの最大公約数はBとA%Bの最大公約数であり、後者が0になるまで下に計算され、このときの最大公約数はA’(AではなくA’)であることに注意する.例えば、上記の例では、A%B=0の場合、最大公約数はBであり、このA’はBを表す.
最大公約数のコード:(C++による関数)
int gcd(int a,int b)
{
	int g;
	if(b==0)g=a;
	else g=gcd(b,a%b);
	return g;
}

最小公倍数と最大公約数の関係:
2つの数AとBが存在すると仮定すると、彼らの最大公倍数はAとBの積で除算されたAとBの最大公約数であるA*B/gcd(A,B)である.
上から最大公約数を求める基礎があれば、私たちは簡単に2つの数の最小公倍数を求めることができます!言うまでもなく、上のコード(C++言語に基づいて実現された関数):
int mingbs(int a,int b)
{
	return a*b/gcd(a,b);//gcd     
}

最大公約数の性質の拡張:
実は最大公約数を求めるのは簡単なことですが、その背後にある数学の性質も重要です.私がここで応用した性質を簡単に話します.
性質1:もし2つの数の最大公約数が1であれば、この2つの数は互いに質を交換する.性質2:もし2つの数が互いに質(性質1)を交換すれば、この2つの数からなる最大の不可能な数は彼らの積から彼らの和を減算することである.逆に構成できる最大不可能数はなく,すなわち構成不可能数は無限である.
私はその他の性質に触れていないので、接触してから補充します.上述の2つの性質は更に青い橋の杯のテーマ《まんじゅうの数をそろえる問題》の中で比較的に経典を応用して、それは動態の計画と結びつけて運用したため、興味のある読者は解決を試みることができて、このように自分のプログラミングの応用能力を高めることができます.「饅頭湊数問題」は私が時間があるのを待ってから、読者の友达と私の解題方法を共有してください.