Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 29

Найти количество чисел в интервале от 1 до N, взаимно простых с N

23.11.2015, 18:19. Показов 9234. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано число N. Найти количество чисел в интервале от 1 до N,взаимно простых с N.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.11.2015, 18:19
Ответы с готовыми решениями:

Найти количество натуральных чисел, взаимно простых с данным
Найти количество натуральных чисел\leq 770 и взаимно простых с 770? Разложить два числа на множители и найти общий множитель? Спасибо.

Найти количество простых чисел в интервале
Добрый день! Помогите решить задачку на хаскеле. Найти кол-во простых чисел в интервале. Спасибо!

Найти количество простых чисел в заданном интервале
По числу n найти количество простых чисел p из интервала n < p < 2n. Нужен быстрый способ.

11
0 / 0 / 1
Регистрация: 23.11.2015
Сообщений: 4
23.11.2015, 19:05
Лучший ответ Сообщение было отмечено Romanchito как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
using namespace std;
int gcd(int x, int y)
{
    return y ? gcd(y, x%y) : x;
}
int main()
{
    setlocale(LC_ALL, "");
    int a=0, n;
    cout << "Введите число N = ";
    cin >> n;
    for (int k = 0; k < n; k++)
        if (gcd(k, n) == 1)
            a = a + 1;
    cout << "Взаимно простых чисел с числом " << n << ", " << a;
    _getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 29
26.11.2015, 20:37  [ТС]
Ваша программа не правильна , так как , если вводить 6 , например , то ответ выводит 2 , что не правильно , так как у 6рки лишь одно взаимное число в промежутке от 1 до 6 , пятерка.

Добавлено через 1 минуту
У меня также выводила , в других вариантах , но чтоб она отбрасывала еще и числа имеющие общий делитель , я не знаю как написать(
0
0 / 0 / 1
Регистрация: 23.11.2015
Сообщений: 4
26.11.2015, 22:47
Программа почти правильная, она считает 1 взаимно простым числом с 6, поэтому ответ 2.
Если Вы хотите исключить 1, то как вариант добавить в цикл такую запись:
C++
1
2
3
4
5
6
7
    for (int k = 0; k < n; k++)
    {
        if (k = 1)
            a = 0;
        else (gcd(k, n) == 1)
            a = a + 1;
    }
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.11.2015, 22:54
Цитата Сообщение от Zefirka Посмотреть сообщение
добавить в цикл такую запись:
или не париться и начинать цикл с 2.

Добавлено через 38 секунд
Цитата Сообщение от Zefirka Посмотреть сообщение
C++
1
if (k = 1)
это к бесконечному циклу приведет.
1
0 / 0 / 1
Регистрация: 23.11.2015
Сообщений: 4
26.11.2015, 23:47
Ну или оператору a=-1, я думал над этим, но всё же правильнее на мой взгляд исключить 1.

Добавлено через 12 минут
Как то так:
C++
1
2
3
4
5
6
7
    for (int k = 0; k < n; k++)
    {
        if (gcd(k, n) == 1 & k!=1)
            a = a + 1;
        else
            continue;
    }
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
27.11.2015, 00:25
Если совсем не думать об эффективности, то предложенный код (с соответствующими поправками) должен работать. Но если хоть чуть-чуть о ней задуматься, то код никуда не годиться. Можно пойти таким путем.
Найти все простые делители N и проверять делимость только на них. Но для этого нужен массив (вектор). Правда, не очень большой. Не больше, чем log2N, при чем это очень грубая оценка.
Можно воспользоваться еще кой-какими фактами из элементарной (и не очень) теории чисел. В конце концов тут требуется вычислить функцию Эйлера, уж наверное за 300 лет какие-то наработки появились!
https://ru.wikipedia.org/wiki/... 1%80%D0%B0
Кстати, в классической формулировке единица входит.
2
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 29
29.11.2015, 21:41  [ТС]
Большое спасибо , программа работает , только можете поподробнее объяснить про функцию gcd , что она делает , как ее можно представить в алгебраическом виде , и что делает данное выражение в программе
int gcd(int x, int y)
{
return y ? gcd(y, x%y) : x;
}
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
29.11.2015, 23:35
Цитата Сообщение от Romanchito Посмотреть сообщение
про функцию gcd , что она делает
Находит наибольший общий делитель чисел x, y
0
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 29
01.12.2015, 20:43  [ТС]
А можете объяснить почему тут пишется вопрос и двоеточие перед х ?Для чего они?
y ? gcd(y, x%y) : x;
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
01.12.2015, 21:12
Цитата Сообщение от Romanchito Посмотреть сообщение
Для чего они?
Тернарный оператор. Прочитай.
Эквивалентно
C++
1
2
if (y) return gcd(y, x%y);
else return x;
Кто понял и привык, тем легче так.
1
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 29
02.12.2015, 18:03  [ТС]
Спасибо , что помогли , прям огромное спасибо)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2015, 18:03
Помогаю со студенческими работами здесь

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

Количество чисел взаимно простых с p*q
Нужно доказать, то есть найти кол-во взаимно простых чисел с p*q, если фи(p)=p-1( функция эйлера для простых чисел), найти фи(p*q)-?

Количество шестизначных чисел, взаимно простых с числом 70
Всем привет! Помогите с задачкой, почему код не работает должным образом, если по логике он правильный? Или в чем моя ошибка? Два...

Количество 6-значных чисел, взаимно простых с числом 70
Моя вторая программа на Python, и не работает) Ничего не выводит. Пожалуйста, помогите исправить программу или переписать полностью. ...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru