Сергей Ухин
Сергей Ухин

Вычисление НОД и НОК (Программирование)

//Вычисление НОД и НОК
#include
void nodk(int d, int k);
int main(void)
{
int d=0, k=0;
void nodk(int *d, int *k)
d=*d;
k=*k;
printf("НОД = ", d);
printf("НОК = ", k);

return 0;
}

//d-нод k-нок

void nodk(int &d, int &k)
{
int a, b, c=0, d=0, k=0;
printf ("Введите первое и второе число");
while (scanf("%d%d",&a, &b));
{
c=a%b;
if (c==0) {d=b,k=a*b/d;}
else {a=b, b=c;};
};return 0;
}

Нужно подправить:
1.передачу из функции (nodk) двух элементов (d и k) КАК?? ?
2.и вообще исправить все ошибки)) )

если можно предложите свой вариант (си)

Денис Питель
Денис Питель

#include

int gcd(int a, int b) { return b? gcd(b, a % b) : a; }

int main() {
int d, k, g;

printf("два числа? ");
scanf("%d%d", &d, &k);
printf("нод (d, k): %d; нок (d, k): %d\n", g = gcd(d, k), d / g * k);

return 0;
}

ВС
Владимир Солонар

улучшение вычислительной части:
while (a!=0 && b!=0) {
if (a>b) a %= b; else b %= a;
}

ВА
Володя Андрианов

#include
using namespace std;
int nod(int a,int b){return a%b?nod(b,a%b):b;}
int main(){int a,b,c; cout<<"a b ? "; cin>>a>>b; c=nod(a,b);
cout<<"nod="<< c<<", nok="<< a/c*b<< endl; cin.get(); cin.get();}

P.S. Не заметил, написал на C++..Ну, ввод-вывод легко подправить.

Похожие вопросы
Найти НОК ( а, в) , если: а) НОД (315,385)=35 б) НОД (47,105)=1
Найдите НОД и НОК чисел 756 и 492
Как найти НОД и НОК (12 и 24)
написать программу которая вводит два целых числа и выводит их НОК и НОД (кратность и делитель) ТРебования-НОК и НОД отд
обесьните нок и нод пожалуста. вот непонемаю
Предупреждение на Ноде
как посчитать НСД (НОК) от НСК (НОД) НСД (нок) = 99;126 НСК (нок) = 12;20
нужна помощь. Программирование и вычисления суммы и произведения
программа на pascal (найти НОК через НОД для двух чисел )
как найти НОД И НОК чисел