第17講 ユークリッド互除法
第5話 ユークリッド互除法を利用した約分判定と約分実行

r
t

ユークリッド互除法を利用した約分判定と約分実行プログラム例
#include<iostream>
#include<ctime> //srand(time(NULL));を使うために必要
using namespace std;
int yg(int a,int b);
void k(int a,int b);
void main(){
   int a,b;
   srand(time(NULL)); //毎回異なる結果を得るためにシード値を現在時間に
   while(a==0){
     a=rand()%100;
   }
   while(b==0){
     b=rand()%100;
   }
   cout<<"分数"<<a<<"/"<<b<<"は"<<endl;
   int c,d;
   c=a;
   d=b;
   if(c<d)k(c,d);
   int e;
   e=yg(c,d);
   if(e>1){
     cout<<"約分できます。"<<endl;
     cout<<"約分結果は"<<a/e<<"/"<<b/e<<"です。"<<endl;
   }
   else{
     cout<<"約分できません。"<<endl;
   }
   cout<<"プロジェクト終了"<<endl;
}
void k(int a,int b){
   int w;
   w=a;
   a=b;
   b=w;
}
int yg(int a,int b){
   a=a%b;
   if(a==0)return(b);
   yg(b,a);
}
参考ダウンロード添付ファイル

ユークリッド互除法を使うと、最小公倍数を求めることも出来ます。
aとbの最大公約数をG、最小公倍数をLとすると、
G×L=a×b
の関係があります。
ですから、最小公倍数Lを求めるには、
L=a×b÷G
ということになります。

最小公倍数を求めるプログラムを以下の条件下で組んで下さい。
① 整数a、bは今回の約分プログラムと同様にランダムに発生させる。
② 任意に発生させるだけだと、
  ほとんどの場合互いに素(最大公約数が1)になってしまうので、
  aもbも100未満の整数を2つかけたものとする。
p


第4話へ
 第6話へ

a

eclipse c++ 入門講義第1部へ

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ