Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
andreskrip
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
1

Надо получить все делители числа q, взаимно простые с p

01.03.2014, 18:32. Просмотров 798. Ответов 8
Метки нет (Все метки)

Условие задачи такое: Даны целые числа p и q. Получить все делители числа q, взаимно простые с p.
Есть код на получение делителей числа q:
C#
1
2
3
4
5
6
        Console.Write("Введите число q: ");
        var n = int.Parse(Console.ReadLine());
        Console.Write("Делители: ");
        for (var d = 2; d <= n / 2; ++d) if (n % d == 0) Console.Write(" {0}", d);
        Console.WriteLine();
        Console.ReadKey();
Но я не знаю как полученные делители связать с числом p и вывести взаимно простые с ним делители. Помогите кто чем может
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2014, 18:32
Ответы с готовыми решениями:

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

Получить все делители числа, взаимно простые с р
Решите задачу: Даны целые числа n и m. Получить все делители числа m, взаимно...

Получить все натуральные числа, меньшие n и взаимно простые с ним
Собственно говоря не могу написать код вот для этой задачи: &quot;Дано натуральное...

Требуется вывести все простые делители введенного числа
Вводится число. Требуется вывести все простые делители введенного числа.

Найдите все простые делители целого числа в заданном диапазоне
Найдите все простые делители целого числа в заданном диапазоне.

8
Kruds
694 / 694 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
Завершенные тесты: 1
01.03.2014, 18:54 2
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
static void Main(string[] args)
{
    foreach (int divider in Dividers(100, 14))
        Console.WriteLine(divider);
}
 
public static int NOD(int a, int b) //http://www.cyberforum.ru/post1516961.html
{
    if (a == b)
        return a;
    else
        if (a > b)
            return NOD(a - b, b);
        else
            return NOD(b - a, a);
}
 
public static IEnumerable<int> Dividers(int p, int q)
{
    for (int i = 2; i < p / 2; i++)
    {
        if (p % i == 0 && NOD(i, q) == 1)
            yield return i;
    }
}
1
andreskrip
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
03.03.2014, 12:19  [ТС] 3
не работает код(
0
Kruds
694 / 694 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
Завершенные тесты: 1
03.03.2014, 12:57 4
Вот вам полный код программы.
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
 
class Program
{
    static void Main(string[] args)
    {
        foreach (int divider in Dividers(100, 14))
            Console.WriteLine(divider);
    }
 
    public static int NOD(int a, int b) //http://www.cyberforum.ru/post1516961.html
    {
        if (a == b)
            return a;
        else
            if (a > b)
                return NOD(a - b, b);
            else
                return NOD(b - a, a);
    }
 
    public static IEnumerable<int> Dividers(int p, int q)
    {
        for (int i = 2; i < p / 2; i++)
        {
            if (p % i == 0 && NOD(i, q) == 1)
                yield return i;
        }
    }
}
1
andreskrip
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
03.03.2014, 20:20  [ТС] 5
Все так же ничего не происходит, ошибок нет, но и на выходе ничего нет
0
Миниатюры
Надо получить все делители числа q, взаимно простые с p  
Lexeq
649 / 539 / 393
Регистрация: 21.01.2014
Сообщений: 1,480
Завершенные тесты: 2
04.03.2014, 03:12 6
Вроде так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static int NOD(int a, int b)
{
    while (b != 0)
    b = a % (a = b);
    return a;
}
        
public static void Main(string[] args)
{
    Console.Write("Введите число q: ");
            int q = int.Parse(Console.ReadLine());
            Console.Write("Введите число p: ");
            int p = int.Parse(Console.ReadLine());
            for (int i = 2; i <= q / 2; i++)
            {
        if (q % i == 0 && NOD (i, p) == 1)
                    Console.Write(i + " ");
            }
    Console.ReadKey(true);
1
Kruds
694 / 694 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
Завершенные тесты: 1
04.03.2014, 08:21 7
Ctrl+F5
1
andreskrip
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 5
04.03.2014, 15:32  [ТС] 8
Спасибо огромное, просто спас меня.
0
tezaurismosis
04.03.2014, 19:26     Надо получить все делители числа q, взаимно простые с p
  #9

Не по теме:

Цитата Сообщение от Kruds Посмотреть сообщение
Ctrl+F5
Это сочетание клавиш нужно вырезать в камне. Или чтобы преподы об этом каждое занятие говорили. :)

0
04.03.2014, 19:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2014, 19:26
Привет! Вот еще темы с ответами:

Взаимно простые числа
Нужно составить программу, проверяющую, являются ли три числа взаимно простыми.

Взаимно простые числа
Написать код который создаёт логический массив a размером NxN такой, что а =...

Найти взаимно простые числа
Нужно сгенерировать число простое и в то же время взаимно простое с fi private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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