Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ «Неделя первая - Условный оператор и циклы - Наибольший общий делитель» #4

Войти
Регистрация
Восстановить пароль
Оценить эту запись

С++ «Неделя первая - Условный оператор и циклы - Наибольший общий делитель» #4

Запись от acmades размещена 13.07.2017 в 03:38
Обновил(-а) acmades 15.07.2017 в 13:11 (Изменение категории)

Задание:
В stdin даны два натуральных числа. Найти их наибольший общий делитель.

Пример

stdin -> stdout
25 27 -> 1
12 16 -> 4
13 13 -> 13

Моё решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h" //это для Visual studio
#include <iostream>
using namespace std;
int main()
{
    int a, b, c;
    cin >> a >> b; //вводим цифры
    if (a > b)c = b; // чтобы меньше делать итераций в цикле ниже, сразу найдем меньшее число
    else c = a;
    while (a%c != 0 || b%c != 0) { //пока оба не делятся нацело, уменьшать делитель - так найдем наибольший
        --c;
    }
    cout << c; //выводим делитель при котором оба числа делятся нацело
    }
    return 0;
}
Вроде оптимально написал...
Всего комментариев 0

Комментарии

 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru