Processing math: 100%

2016年9月23日金曜日

学習環境/開発環境

代数系入門 (松坂 和夫(著)、岩波書店)の第1章(整数)、3(最大公約数)、問題2.を取り組んでみる。

問題2.


  1. 7935=5796·1+21395796=2139·2+15182139=1518·1+6211518=621·2+276621=276·2+69276=69·4(5796,7935)=69

  2. (39600,32670,25542,16863)=3(13200,10890,8514,5621)=33(1200,990,774,511)(1200,990)=30(40,33)40=33·1+733=7·4+57=5·1+25=2·2+12=1(1200,990)=30(30,774)=6(5,129)129=5·25+45=4·1+14=1(30,774)=6(6,511)511=6·85+16=1·6(6,511)=1(39600,32670,25542,16863)=33·1=33

JavaScript で確認。

HTML5

<label for="numbers0">numbers: </label>
<input id="numbers0" type="text" value="5796,7935">

<div id="output0"></div>

<script src="sample2.js"></script>

JavaScript

コード(Emacs)

(() => {
    'use strict';
    var input_numbers = document.querySelector('#numbers0'),
        div_output = document.querySelector('#output0'),
        gcd,
        euclid,
        output;

    gcd = (x, y) => {
        var a = Math.max(x, y),
            b = Math.min(x, y),
            r;
        
        r = a % b;    
        for (; r !== 0; ) {
            a = b;;
            b = r;
            r = a % b;
        }
        return b;
    };
    output = () => {
        var text = input_numbers.value,
            numbers,
            answer;

        numbers = text.split(',').map((x) => parseInt(x.trim(), 10));
        answer = numbers.reduce((a, b) => gcd(a, b), numbers[0]);
        div_output.innerText = `(${text}) = ${answer}`;
    };
    input_numbers.onchange = output;
    output();
})();
(5796,7935) = 69

0 コメント:

コメントを投稿