НОК и НОД (исходный код)

Наименьшим общим кратным (НОК) двух целых чисел является наименьшее натуральное число, которое делится на эти два числа без остатка.

Наибольшим общим делителем (НОД) двух целых чисел называется наибольший из их общих делителей.

Для нахождения наибольшего общего делителя (НОД) можно использовать алгоритм Евклида (способ «взаимного вычитания»). Наименьшее общие кратное, если извесен НОД чисел a и b, можно найти с помощью формулы: МОДУЛЬ(a * b)/НОД.

Ниже представлены реализации алгоритмов поиска НОК и НОД на разных языках программирования.

Для удобства можно скачать все исходные файлы в архиве кликнув по кнопке:

А посчитать НОК и НОД двух чисел вы можете прямо сейчас, перейдя по ссылке: НОК и НОД Онлайн.



Реализация на C (Си)

#include <stdio.h>
#include <math.h>

int NOD(int a, int b){
    while (a != b){
        if (a > b){
            a -= b;
        } else {
            b -= a;
        }
    }
    return a;
}

int NOK(int a, int b){
    return abs(a * b)/NOD(a, b);
}

int main(){
    int a, b;
    printf("Enter a and b: ");
    scanf("%d %d", &a, &b);
    printf("NOK = %d\nNOD = %d", NOK(a, b), NOD(a, b));
    return 0;
}

Реализация на C++

#include <iostream>
#include <cmath>
using namespace std;

int NOD(int a, int b){
    while (a != b){
        if (a > b){
            a -= b;
        } else {
            b -= a;
        }
    }
    return a;
}

int NOK(int a, int b){
    return abs(a * b)/NOD(a, b);
}

int main(){
    int a, b;
    cout << "Enter a and b: ";
    cin >> a >> b;
    cout << "NOK = " << NOK(a, b) << endl << "NOD = " << NOD(a, b);
    return 0;
}

Реализация на PHP

<?php
function NOD($a, $b){
    while ($a != $b){
        if ($a > $b){
            $a -= $b;
        } else {
            $b -= $a;
        }
    }
    return $a;
}

function NOK($a, $b){
    return abs($a * $b)/NOD($a, $b);
}

$a = $_GET['a'];
$b = $_GET['b'];
echo 'NOK: '. NOK($a, $b) .'<br>';
echo 'NOD: '. NOD($a, $b);
?>

Реализация на JavaScript

function NOD(a, b){
    while (a != b){
        if (a > b){
            a -= b;
        } else {
            b -= a;
        }
    }
    return (a);
}

function NOK(a, b){
    return (Math.abs(a * b)/NOD(a, b));
}

var a = Number(prompt("Enter A:"));
var b = Number(prompt("Enter B:"));
alert ('NOK: ' + NOK(a, b));
alert ('NOD: ' + NOD(a, b));



Реклама