• 締切済み

EXCEL VBA

2つの正の整数値(仮にa,bとする)を入力として,a÷bの商を求める関数を割り算(/)や剰余算(Mod)は使わずに作ることはできますか??  また、2つの正の整数値の最小公倍数を求める関数も作りたいのですが、どんなに考えても思いつきませんでした。回答よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

コンピュタのCPUでの割り算は(回路的なレベル)引き算でやっていると言うことを聞いたことがある。 そのロジックを高級言語でやれば(馬鹿な話と思うが)結果は出るでしょう。学校での問題かな。 繰り返し除数で非除数から引き算していってマイナスになる直前で、 引き算した回数ーー>商 その時点での余りーー>余り になる理屈。 ーーー 最小公倍数 「2つの整数 a, b の最小公倍数を LCM(a, b) で表すと,a と b の最大公約数 GCD(a, b) を Euclid 互除法で求めれば,LCM(a, b) = a*b/GCD(a, b) で簡単に求まる」 ー 「Euclid 互除法」に行き着くが、これは「ユークリッドの互除法」でWEB照会すれば、沢山記事が出てくる。 プログラム例もあると思う。これ以上良いアルゴリズムは発見されてないようなので、目移りしないでアンシンしてこれを勉強のこと。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

#1の割り算の方法を利用します。 (1)ユークリッドの互除法で、2つの整数の最大公約数Gを求めます。 (2)2つの整数をその最大公約数で割った商をa,bとすると、最小公倍数は、abGになります。

全文を見る
すると、全ての回答が全文表示されます。
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

まず割り算は Sub Sample() Dim a As Integer Dim b As Integer Dim sho As Integer a = 15 b = 2 sho = 0 Do Until a < b a = a - b sho = sho + 1 Loop MsgBox sho End Sub 最小公倍数の関数の作成方法は分かりませんがアドインで分析ツールにチェックをつけるとLCM(最小公倍数)関数が使用できます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 除法

    考え方について教えてください。 例1 ある整数で45を割ると3余り、71を割ると5余る。ある整数の求めかたで、この問題を解く方法は最大公約数を利用します 例2 3で割っても5で割っても6で割っても2余る2桁の自然数のうち最大のものは? この問題の解き方は最小公倍数を利用。 〇問題によってどんな時に最大公約数、最小公倍数を利用するのか分かりません。 例2で聞きたいのですが、 求める自然数をxとし、3で割った商をa,5で割った商をb、6で割った商をcとすると x-2=3a x-2=5b x-2=6c 最小公倍数から30となりました。 この後、どのように考えるのか分かりません。

  • Excel 特定の倍数の個数を数え方を教えてください

    Excel初心者です。 セルA1からA50に整数(正、負,0,重複あり)が入力されています。 その中から3の倍数だけに色をつけるのは条件付書式でできました。 A51セルにその個数が何個あるか関数で数えたいのですがうまくいきません。B列にIFとMOD関数を使いB51セルに出すことはできましたが、A1に一発で入れる方法を教えてください。 ちなみに私はA1に =Countif(A1:A50,Mod(A1:A50,3)=0) としましたが、正答が出ませんでした。 この考え方の間違いと、正解を初心者むけに教えてください。 また併せて、正の数で3の倍数の個数の算出のやり方も教えてもらえればいっそう理解が深まります。 よろしくお願いします。

  • 高校数学 不定方程式(百五減算)について

    数学Aの問題で教えて頂きたいことがあります。 フォーカスゴールド(Ⅰ・A)の例題262で 「3で割ると2余り、5で割ると3余り、7で割ると4余る3桁の正の整数のうち、最大のものを求めよ。」 解答(別解)として、「N=15a+35b+21c(a、b、cは整数)という数を考える。」とあり、合同式を用いて方法を使っているのですが、なぜそのような式を立てようと考えるのかがしっくりきません。 確かに3と5の最小公倍数15、5と7の最小公倍数35、3と7の最小公倍数21はわかりますが、N=15a+35b+21cと置くと理由がわかっておりません。 宜しくお願いします。

  • 整数について。

    (1)最大公約数と最小公倍数の和が51であるa,b(a <b)の組は、?組あり、最大のa の値は、?である。 (2)和が546で、最小公倍数が1512である2つの正の整数を求めよ。 この2問にご教授願いたいです。すみません。

  • ガウスの整数の問題なんですが・・・

    ガウスの整数α=39+62i β=7+6iについて (1)αをβで割った時の商と余りを求めよ! という問題なんですが高校でやった多項式のわり算と違うのでしょうか?つまり商が5で余りが4+32iってなるのでしょうか?こんな単純でないですよね~・・・ 次に(2)αとβの最小公約数と最小公倍数をもとめる問題なんですがうまく解ける解法があるのでしょうか?一見αとβ両方割り切れる数なんでないような気がするのですが・・・すいません教えてください(泣)

  • c言語のプログラムです

    2つの生の整数の割り算a÷bはaからbを繰り返し引いていき、引くことが出来なくなるまでの回数を商、その時の残りを剰余をすることで、引き算だけを用いて実現することができる。このことを考慮して、while文と引き算だけを用いて割り算を実現しなさい。という問題なんですけどどのようにプログラムを作っていいやらわかりません 一様ヒントはあります ・変数としては、入力する二つの整数に対応する変数m,n、商に対応する変数q、剰余に対応する変数rを使うとよいでしょう。すべて整数ですのでintで宣言する。 皆さんのご協力お願いします

  • Fotranで最小公倍数

    この場をお借りして質問させていただきます。 Fortranで、2つの整数を入力して最小公倍数を求めたいのですが、基本事項過ぎるのか調べても出てこずいまいち分からないでいます。 素数による割り算を繰り返して、結果として出てくる数値を掛け合わせる、というアルゴリズムらしいのですが…。 どなたか教えていただけるとありがたいです。よろしくお願いします。

  • 数A 場合の数について

    1、200以上500以下の自然数のうち、次のような数の個数を求めよ。 (1)6の倍数かつ9の倍数 (2)6の倍数または9の倍数 2、100から200までの整数のうち、次の整数の個数を求めよ。 (1)5の倍数かつ8の倍数 (2)5の倍数または8の倍数 ~~~~~~~~~~~~~ 1、(1)301÷18=16 A,16個    6と8の最小公倍数は18.    よって、6の倍数かつ8の倍数は16. 2、(1)・101÷40=2.…    A,2個 →×     ・5の倍数と8の倍数の最小公倍数は40.     よって {40×3, 40×4, 40×5}             A,3個 →〇 ~~~~~~~~~~~ なぜ、(1)は最小公倍数で割って答えが出たのに、 (2)は最小公倍数で割っても答えではないのでしょうか? (1)の方法で答えが出ると勘違いし、テストに望んだ所、結果は散々でした。 やはり間違っていたのでしょうか? 回答お願いします。

  • EXCELの関数式(INT,MOD)で教えて下さい

    下図のようなEXCELの表があります。 金種計算で、1行目は1万円、5千円、千円・・・10円と入っており、 A2は計算したい金額(97810)を入れています。 B2セルの式=INT($A2/B1)、C2セルの式=INT(MOD($A2,B1)/C1)で、C2セルの式はD2~H2に複写しています。 EXCELで得た計算結果(2行目)は正しいと思うのですが、 D2,F2,H2の計算結果と、自分で計算した結果があいません。 ここを詳しく教えて頂けないでしょうか。 宜しくお願い致します! INT関数:整数部を返す MOD関数:剰余を返す  |  A  |  B |  C |  D |  E |  F |  G |  H | 1|   |10000| 5000| 1000| 500| 100|  50 |   10| 2|97810|   9|   1|   2|    1|   3|   0|   1| B2は、98710÷10000=9.7810→整数部を返すので「9」 C2は、97810÷10000=9.7810→剰余7810÷5000=1.562 →整数部を返すので「1」 D2は、97810÷5000=19.562→剰余562÷1000=0.562 →整数部を返すので「0」??? E2は、97810÷1000=97.810→剰余810÷500=1.62 →整数部を返すので「1」 F2は、97810÷500=195.62→剰余62÷100=0.62 →整数部を返すので「0」??? G2は、97810÷100=978.10→剰余10÷50=0.2 →整数部を返すので「0」 H2は、97810÷50=1956.2→剰余2÷10=0.2 →整数部を返すので「0」???

  • 整数の約数・倍数の問題

    二つの正の整数の和は54で、その最小公倍数は231である。各数を求めよ。 という問題です。 231=3*7*11、二つの整数の和が54より最大公約数は3.∴求める2数は3*7、3*11つまり21,33. と解説があるのですが、よくわかりません。 最小公倍数とは、2数に共通する因数の2数に共通しない因数の積ということは覚えていたので、その2数をA,BとするとA(B)=3^l*7^m*11^n、となるから、3,7,11を掛け合わせて和が54になるような2数を探せばよいんだなという方針で、答えはでたのですが、あまり能率的ではないような気がします。 解説の解説をお願いします。 宜しくお願いしますm(__)m

専門家に質問してみよう