Другие языки программирования и технологии
Разработайте программу на любом доступном языке программирования вычисляющую наименьшее общее кратное двух чисел...
....используя наибольший общий делитель и алгоритм Евклида. не забудьте указать язык программирования
На паскале:
program nodnok;
uses crt;
function NOD(m,n:integer):integer;
begin
If m<>0 then NOD:=NOD(n mod m,m) else NOD:=n;
end;
function NOK(m,n:integer):integer;
begin
NOK:=(m div NOD (m,n))*n;
end;
var x,y: integer;
begin
clrscr;
writeln('Vvedite x y :');
readln(x,y);
writeln (NOK(x,y));
readln;
end.
program nodnok;
uses crt;
function NOD(m,n:integer):integer;
begin
If m<>0 then NOD:=NOD(n mod m,m) else NOD:=n;
end;
function NOK(m,n:integer):integer;
begin
NOK:=(m div NOD (m,n))*n;
end;
var x,y: integer;
begin
clrscr;
writeln('Vvedite x y :');
readln(x,y);
writeln (NOK(x,y));
readln;
end.
Haskell:
gcd :: Integral a => a -> a -> a
gcd 0 0 = error "НОД (0,0) не определён"
gcd m n = gcd' (abs m) (abs n)
where gcd' m 0 = m
gcd' m n = gcd' n (rem m n)
lcm :: Integral a => a -> a -> a
lcm _ 0 = 0
lcm 0 _ = 0
lcm m n = abs ((quot m (gcd m n)) * n)
gcd :: Integral a => a -> a -> a
gcd 0 0 = error "НОД (0,0) не определён"
gcd m n = gcd' (abs m) (abs n)
where gcd' m 0 = m
gcd' m n = gcd' n (rem m n)
lcm :: Integral a => a -> a -> a
lcm _ 0 = 0
lcm 0 _ = 0
lcm m n = abs ((quot m (gcd m n)) * n)
Паскаль:
begin
writeln ('vvedite N,K');
readln (N,K);
while N< >K do
if N>K then N:=N-K
else K:=K-N;
NOD:=N;
writeln ('НОД= ',NOD);
end.
begin
writeln ('vvedite N,K');
readln (N,K);
while N< >K do
if N>K then N:=N-K
else K:=K-N;
NOD:=N;
writeln ('НОД= ',NOD);
end.
1) Исходник на Си: http://algolist.ru/maths/teornum/nod.php (там все расписано)
2) Вот еще одна реализация на С++ (взято с www cyberforum ru ):
#include <stdio.h>
/* getnod: возвращает НОД двух чисел */
unsigned getnod(int a, int b)
{
unsigned nod, n1 = abs(a), n2 = abs(b);
for (nod = (n1 < n2) ? n1 : n2; nod > 0; nod--)
if (!(n1 % nod || n2 % nod))
break;
return nod;
}
main()
{
printf("%d\n", getnod(-12, -16));
return 0;
}
2) Вот еще одна реализация на С++ (взято с www cyberforum ru ):
#include <stdio.h>
/* getnod: возвращает НОД двух чисел */
unsigned getnod(int a, int b)
{
unsigned nod, n1 = abs(a), n2 = abs(b);
for (nod = (n1 < n2) ? n1 : n2; nod > 0; nod--)
if (!(n1 % nod || n2 % nod))
break;
return nod;
}
main()
{
printf("%d\n", getnod(-12, -16));
return 0;
}
Похожие вопросы
- Напишите программу на любом из языков программирования
- Какие программы нужны, и какие языки программирования нужно знать для того..
- Как выглядит алгоритм который можно записать на языке программирования который ищет закономерности в ряде чисел?
- Язык программирования c++, в массиве, найти положительные числа
- Сложно ли будет написать программу если хорошо знаешь язык программирования?
- Составить блок-схему вычислительного процесса и написать программу на любом алгоритмическом языке высокого уровня.
- Помогите написать программу на любом языке программирования
- На каком простом языке программирования можно создать такую программу?
- Как создать программу, зная язык программирования?
- Разработать компьютерную программу, написанную на языке программирования PascalABC, используя тип данных «запись»,