第11講 ユークリッド互除法
第6話 分数約分アプリ例
26370/23103=26370/23103
9で約分しました。
26242/29899
この分数は約分できません。
を実現するコード例
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
void f(int a,int b); //aとbを交換する社員
int g(int a,int b); //ユークリッド互除法を行う社員
int main(){
int a,b,c;
srand(time(NULL)); //シード値を自動的に指定
for(;;){
a=rand()%20;
b=rand()%20;
a=a*(rand()%20);
b=b*(rand()%20);
a=a*(rand()%20);
b=b*(rand()%20);
if(a>0 && b>0){
break;
}
}
printf("a=%d b=%d\n",a,b);
if(a<b)f(a,b);
c=g(a,b);
printf("aとbの最小公倍数は%dです。\n",a*b/g(a,b));
return(0);
}
void f(int a,int b){
int w;
w=a;
a=b;
b=w;
}
int g(int a,int b){
a=a%b;
if(a==0){
return(b);
}
return(g(b,a));
}
コピペ用添付ファイル
ユークリッド互除法を使うと、最小公倍数を求めることも出来ます。
aとbの最大公約数をG、最小公倍数をLとすると、
G×L=a×b
の関係があります。
ですから、最小公倍数Lを求めるには、
L=a×b÷G
ということになります。
最小公倍数を求めるプログラムを以下の条件下で組んで下さい。
@ 整数a、bは今回の約分プログラムと同様にランダムに発生させる。
A 任意に発生させるだけだと、
ほとんどの場合互いに素(最大公約数が1)になってしまうので、
aもbも20未満の整数を3つかけたものとする。
実行画面
a=612 b=1980
aとbの最小公倍数は33660です。
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ