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

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р - C++

Восстановить пароль Регистрация
 
Oksana)
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 23
11.02.2012, 13:49     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р #1
Получить все делители числа q, взаимно простые с р.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 13:49     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р
Посмотрите здесь:

Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p. C++
Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. C++
не могу понять задачку :) Даны натуральные числа p и q. Получить все делители числа q, взаимно простые с p C++
C++ Получить все делители числа q, взаимно простые к p
Получить все простые делители числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ernikoss
1 / 1 / 0
Регистрация: 17.02.2011
Сообщений: 9
11.02.2012, 13:54     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р #2
знакомы с решетом Эратосфена?
Oksana)
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 23
12.02.2012, 10:29  [ТС]     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р #3
Цитата Сообщение от ernikoss Посмотреть сообщение
знакомы с решетом Эратосфена?
нет, нам без разъяснения задач дали решать
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,881
12.02.2012, 10:41     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р #4
C
1
2
3
4
5
6
7
8
9
10
11
#include ...
int nod(int a, int b)
{
  // Нахождение наибольшего общего делителя поищи на форуме
}
main()
{
  // Определение или ввод данных.................
for(i=1; i<=p/2; i++)
  if ((p%i)==0 && nod(i,q)==1) cout<<i<<endl;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.02.2012, 11:28     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <vector>
 
int gcd(int a, int b)
{
    a = a > 0 ? a : -a;
    b = b > 0 ? b : -b;
    
    while (a != 0 && b != 0)
    {
        if (a < b)
            b %= a;
        else
            a %= b;
    }
    
    return a + b;
}
 
bool is_coprime(int a, int b)
{
    return gcd(a, b) == 1;
}
 
std::vector<int> coprime_dividers(int p, int q)
{
    std::vector<int> result;
    
    for (int d = 1; d <= q / 2; ++d)
        if (q % d == 0)
            if (is_coprime(p, d))
                result.push_back(d);
    
    return result;
}
 
int main()
{
    int p, q;
    
    std::cin >> p >> q;
    
    std::vector<int> vec = coprime_dividers(p, q);
    
    for (size_t i = 0; i < vec.size(); ++i)
        std::cout << vec[i] << "  ";
    
    std::cout << std::endl;
    
    return 0;
}
Yandex
Объявления
12.02.2012, 11:28     Даны целые числа р и q. Получить все делители числа q, взаимно простые с р
Ответ Создать тему
Опции темы

Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru