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

Получить все натуральные числа, меньшие n и взаимно простые с ним - C#

02.03.2014, 23:24. Просмотров 946. Ответов 8
Метки нет (Все метки)

Собственно говоря не могу написать код вот для этой задачи: "Дано натуральное число n. Получить все натуральные числа, меньшие n и взаимно простые с ним." Мучаюсь уже долго, но ничего не выходит( Прошу вашей помощи(ввод данных с клавиатуры). Если не ошибаюсь, то тут используется вложенный цикл. Буду очень благодарен за помощь
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 23:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Получить все натуральные числа, меньшие n и взаимно простые с ним (C#):

Даны натуральные числа n, m. Получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m
namespace ConsoleApplication1 { class Program { static void...

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

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

Даны натуральные числа m и n.получить все кратные им числа меньшие m*n
даны натуральные числа m и n.получить все кратные им числа меньшие m*n

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

Получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m
11. Даны натуральные числа n,m. Получить все меньшие n натуральные числа,...

8
Lexeq
605 / 521 / 385
Регистрация: 21.01.2014
Сообщений: 1,432
Завершенные тесты: 2
02.03.2014, 23:58 #2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        public static int NOD(int a, int b)
        {
            if (a == 0) return b;
            if (b == 0) return a;
            if (a == b) return a;
            if (a == 1 || b == 1) return 1;
            if ((a % 2 == 0) && (b % 2 == 0)) return 2 * NOD(a / 2, b / 2);
            if ((a % 2 == 0) && (b % 2 != 0)) return NOD(a / 2, b);
            if ((a % 2 != 0) && (b % 2 == 0)) return NOD(a, b / 2);
            return NOD(b, Math.Abs(a - b));
        }
        public static void Main()
        {
            Console.Write("Введите число: ");
            int n = Int32.Parse(Console.ReadLine());
            for (int i = 1; i < n; i++)
            {
                if (NOD(n, i) == 1)
                    Console.Write(i + " ");
            }
            Console.ReadKey(true);
        }
Для поиска НОД используется алгоритм Евклида.
1
RomanBaraban
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 20
03.03.2014, 00:07  [ТС] #3
огромное спасибо
0
Lexeq
605 / 521 / 385
Регистрация: 21.01.2014
Сообщений: 1,432
Завершенные тесты: 2
03.03.2014, 00:14 #4
Лучший ответ Сообщение было отмечено RomanBaraban как решение

Решение

Есть еще вариант нахождения НОДа попроще, правда без проверки деления на 0.
C#
1
2
3
4
5
6
public static int NOD(int a, int b)
{
   while (b != 0)
      b = a % (a = b);
   return a;
}
1
RomanBaraban
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 20
03.03.2014, 00:24  [ТС] #5
Lexeq,спасибо, а так как это натуральное число, т можно ли использовать Uint тип или нет? или Ulong?

Добавлено через 5 минут
Lexeq, извини, есть еще такой вопрос. если требуется "После выполнения задания должен выводиться запрос на выход из программы. В случае отрицательного ответа – программа должна выполниться с начала." то какой код должен быть на это действие? через логическую переменную?
0
Lexeq
605 / 521 / 385
Регистрация: 21.01.2014
Сообщений: 1,432
Завершенные тесты: 2
03.03.2014, 01:21 #6
Цитата Сообщение от RomanBaraban Посмотреть сообщение
можно ли использовать Uint тип или нет? или Ulong?
Можно.
Цитата Сообщение от RomanBaraban Посмотреть сообщение
осле выполнения задания должен выводиться запрос на выход из программы.
Можно через логическую переменную, можно так:
C#
1
2
3
4
5
6
7
ConsoleKeyInfo key;
do
{
//тело программы
Console.WriteLine("\nДля выхода нажмите ESC или любую клавишу для продолжения");
key = Console.ReadKey(true);
} while (key.Key != ConsoleKey.Escape);
1
RomanBaraban
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 20
03.03.2014, 02:47  [ТС] #7
Lexeq, после такого ввода при нажатии любой клавиши он заново пишет фразу, а мне нужно,что бы он заново программу всю выполнял, что надо изменить в этом коде?
0
Lexeq
605 / 521 / 385
Регистрация: 21.01.2014
Сообщений: 1,432
Завершенные тесты: 2
03.03.2014, 03:07 #8
Туда где написано "тело программы", нужно вставить код, который надо повторять
1
RomanBaraban
0 / 0 / 0
Регистрация: 02.03.2014
Сообщений: 20
03.03.2014, 11:01  [ТС] #9
Lexeq, а в ConsoleKeyInfo key // будет хранится информация о только что нажатой клавише?
0
03.03.2014, 11:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2014, 11:01
Привет! Вот еще темы с решениями:

Найти все меньшие n простые числа, используя решето Эратосфена
Дано натуральное число n (n≥2). Найти все меньшие n простые числа, используя...

Найти все простые натуральные числа, не превосходящие n
Найти все простые натуральные числа, не превосходящие n, двоичная запись...

Получить все совершенные числа, меньшие n
Натуральное число называется совершенным, если оно равно сумме всех своих...

Дано натуральное число n. Получить все совершенные числа, меньшие n
вот исходник но он не работает int n; n =...


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

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

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