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

Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число)

13.10.2020, 08:51. Показов 15792. Ответов 7
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
Делители числа
Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число).

Входные данные

Вводится натуральное число x

Выходные данные

Выведите все делители числа x

Sample Input:

32
Sample Output:

1 2 4 8 16 32
_________________
2 задача
Вычислите сумму данных 100 натуральных чисел.

Входные данные

Вводятся 100 чисел, сумму которых необходимо посчитать.

Выходные данные

Программа должна вывести единственное число - полученную сумму.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.10.2020, 08:51
Ответы с готовыми решениями:

Дано натуральное число n>1. Выведите все простые множители этого числа в порядке возрастания с учетом кратности.
Дано натуральное число n>1. Выведите все простые множители этого числа в порядке возрастания с учетом кратности. Ввод...

Выведите количество делителей N, включая 1 и само число N
на вход программе поступает целое число N.Выведите количество делителей N. включая 1 и само число N.Внимание:для решения этой задачи...

Вывести все делители числа в порядке возрастания
Простыми называются такие натуральные числа, у которых ровно два делителя: 1 и само это число (они должны отличаться, то есть 1 — не...

7
Модератор
 Аватар для long399
2885 / 1840 / 933
Регистрация: 16.10.2013
Сообщений: 5,245
Записей в блоге: 15
13.10.2020, 09:19
Цитата Сообщение от ia Посмотреть сообщение
Выведите все натуральные делители числа x в порядке возрастания (включая 1 и само число).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main() {
    int x;
    std::cout << "x = ";
    std::cin >> x;
    if (x <= 0) {
        std::cout << "error";
        return 1;
    }
    std::cout << "1 ";
    int is_odd = x % 2;
    std::cout << (!is_odd ? "2 " : "");
    for(int i = is_odd ? 3 : 4; i < x; i += (is_odd ? 2 : 1)) {
        if (x % i == 0) {
            std::cout << i << " ";
        }
    }
    std::cout << x;
    return 0;
}
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
13.10.2020, 10:37
C++
1
2
3
4
5
6
7
int main() {
    int n; std::cin >> n;
    std::vector<int> f, b;
    for (int i=2; i*i<=n; i++) if (n%i==0) { f.push_back(i); if (i*i<n) b.push_back(n/i); }
    for (int i=0; i<f.size(); i++) std::cout << f[i] << " ";
    for (int i=b.size()-1; i>=0; i--) std::cout << b[i] << " ";
}
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.10.2020, 10:54
_Ivana, Память дополнительную использует... Дилемму память-время попробуем решить так
C++
1
2
3
4
5
6
7
8
int main() {
    int n, i; std::cin >> n;
    for (i=1; i*i<=n; i++) if (n%i==0) cout << i << " ";
    i--;
    if (i*i==n) i--;
    for (int j=i; j>0; j--)  if (n%j==0) cout << n/j << " ";
    return 0;
}
Ясно, что хочется все делители вывести по порядку....
Однако, вы пропустили 1 и n. Что, впрочем, мелочи.

Ошибся чуток, но успел поправиться...
3
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
13.10.2020, 10:57
Байт, если не озадачиваться порядком вывода, можно сразу в одном цикле до корня из числа не сохранять его делители а выводить парами - делитель и частное
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.10.2020, 11:00
long399, Обратите внимание, что я и _Ivana прикладываем усилия, чтобы сократить цикл....

Добавлено через 1 минуту
Цитата Сообщение от _Ivana Посмотреть сообщение
если не озадачиваться порядком вывода,
Как говорят у нас в Лаконии - "Если".
1
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
13.10.2020, 12:16
неэффективно, но просто
C++
1
2
3
4
5
6
7
8
 int n,m;
 
  cin>>n;
  m=n;
  while(m>0){
        if(n%m==0)cout<<n/m<<" ";
         m--;
  }
0
Модератор
 Аватар для long399
2885 / 1840 / 933
Регистрация: 16.10.2013
Сообщений: 5,245
Записей в блоге: 15
13.10.2020, 13:04
Немного переделал вариант Уважаемого Байт:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
int main() {
    int n, i; std::cin >> n;
    int is_odd = n % 2;
    int incr = is_odd ? 2 : 1;
    std::cout << "1 ";
    for (i=is_odd?3:2; i*i<=n; i+=incr) if (n%i==0) std::cout << i << " ";
    i--;
    if (i*i==n) i--;
    for (int j=is_odd?i-1:i; j>0; j-=incr)  if (n%j==0) std::cout << n/j << " ";
    return 0;
}
Даст небольшой выигрыш в количестве итераций, при нечетном введенном n.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2020, 13:04
Помогаю со студенческими работами здесь

Вывести все делители числа в порядке возрастания
Простыми называются такие натуральные числа, у которых ровно два делителя: 1 и само это число (они должны отличаться, то есть 1 — не...

Вывести все делители данного числа в порядке возрастания
Простыми называются такие натуральные числа, у которых ровно два делителя: 1 и само это число (они должны отличаться, то есть 1 — не...

Вывести все делители целого числа в порядке возрастания
На вход программе подается целое число. Необходимо вывести все делители этого числа в порядке возрастания (включая отрицательные). Если...

Получить все натуральные делители числа и вывести их в обратном порядке
Ребят Добрый вечер помогите написать программу на с++, очень нужно у самого в с++ фактически нулевые знания. Буду очень очень...

Вывести все числа размещены между данными числами (включая сами эти числа), в порядке их возрастания
Даны два числа А и В (А&lt;В). Вывести все числа размещены между данными числами (включая сами эти числа), в порядке их возрастания, а также...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
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. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru