Кружок Хорового Пения

Тема в разделе "Общие вопросы по С и С++", создана пользователем MahovIV, 16 июл 2013.

  1. MahovIV

    MahovIV New Member

    Регистрация:
    6 июл 2013
    Сообщения:
    2
    Симпатии:
    0
    У меня проблема с задачей. Вот её условие.
    В некотором учебном заведении функционирует кружок хорового пения. Начало кружка всегда происходит единообразно: по сигналу руководителя кружка все N участников становятся в круг и каждый M-й для распевки поёт гамму.

    Руководитель кружка заметил, что размять голосовые связки не всегда удаётся всем участникам кружка. По заданным N и M помогите ему определить, или в очередной раз в разминке примут участие все участники хора.
    Input

    Входные данные состоят из нескольких тестовых случаев. Каждый тестовый случай расположен в отдельной строке и содержит два целых числа N и M. (1 <= N, M <= 1000).
    Output

    Для каждого тестового случая в отдельной строке выведите "YES", если в разминке примут участие все участники хора, в противном случае выведите "NO".
    Код (Text):
    #include <stdio.h>

    int main() {

    int N, K, pr = 0, pr2 = 0, sum = 0, r;
    while(scanf("%d %d", &N, &K) != EOF) {
    pr = N;
    pr2 = K;
    r = N % K;
    while(r!=0) {
    N = K;
    K = r;
    r = N % K;
    }
    sum = pr * pr2 / K;
    if(K == 1) {
    printf("YES\n");
    }
    if(pr == sum && K != 1) {
    printf("NO\n");
    }
    if(pr != sum && K != 1) {
    printf("YES\n");
    }
    }
    return 0;
    }
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    че там надо определить то?
    ------------
    есть наборы тестов?
    программа не работает? - я не вникал в алгоритм, но он похож на что-то правильное.
     
  3. MahovIV

    MahovIV New Member

    Регистрация:
    6 июл 2013
    Сообщения:
    2
    Симпатии:
    0
    Воспользуйтесь окружностью. Соединены между собой N элементов, при этом отмечается каждый M-ый элемент. Например, N == 10 и M == 2. Отмечаем каждый второй элемент. Круг кончается на последнем элементе окружности. И так по кругу. Так как никогда не отмечаются все элементы окружности, то в разминке не смогут принять участие все участники хора. Новый круг начинается с того элемента, который идёт после того элемента, на котором закончился первый круг. То есть, если N == 5 и N == 2, то круг заканчивается на участнике номер 4. Новый круг начинается с элемента под номером 1 и так далее.
     

Поделиться этой страницей