Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2011, 19:46   #1
llatpoh
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 12
Радость нахождения НОК,немного недоработанная прога

вводятся 3 числа
нужно у второго и третьего найти НОК
и если первое%НОК равно нулю вывести первое\НОК-1 иначе первое\НОК
Код:
#include <iostream>

template <typename T>
T gcd(T a, T b)
{

while (a)
{
// a<b
T t = a;
a = b%a;
b = t;
}
return b;
}

template <typename T>
T lcm(T a, T b)
{
return (a/gcd(a, b))*b;
}

static const unsigned long long mult = 1000000000;

int main()
{
std::ios_base::sync_with_stdio(false);
long double l, a, b;
std::cin>>l>>a>>b;
unsigned long long a_ = mult*a, b_ = mult*b, l_ = mult*l;
unsigned long long lcm_ = lcm(a_, b_);
unsigned long long count = l_/lcm_;
if (l_%lcm_==0)
{
--count;
}
std::cout<<count<<std::endl;
}
невсегда работает
есть идеи как улучшить?
llatpoh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НОК на delphi sergi Помощь студентам 6 14.02.2011 17:07
НОК или НОД? rommster Общие вопросы C/C++ 3 22.10.2010 15:36
Програма для нахождения НОК трех чисел Draips Помощь студентам 5 26.04.2010 20:38
Програма нахождения НОК Draips Помощь студентам 2 26.04.2010 10:12
НОК с 3 числами на входе Diabolikn Помощь студентам 3 19.02.2008 23:22