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

Найти все делители числа

23.01.2018, 14:46. Показов 73311. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводится число Х, вы должны найти все делители данного числа и выписать их в строку через пробел.
Вводится целое число Х (1 <= X <= 1000000)
Выводится строка с числами, являющимися делителями Х
Пример
6
1 2 3 6
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2018, 14:46
Ответы с готовыми решениями:

Найти все делители числа P
Помогите студентке пожалуйста сделать задачу. Требуется найти все делители числа Р. Задачу я решила, но препод сказал сделать с...

Найти все делители натурального числа N
дано натуральное число n найти все его делители .ПОмогите пожалуйста

Найти все делители натурального числа n
Всем Привет ! Нужно написать прогу с использованием пользовательских функций. И пожалуйста облегчите мне задачу ) укажите строки с...

11
28 / 5 / 9
Регистрация: 06.03.2015
Сообщений: 105
23.01.2018, 15:27
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
    int n,i;
    cout << "Введите число N" << endl;
    cin >> n  ;
    for (i = n; i > 0; i--) {
      if (n%i==0)  {
       cout << "Делитель: " << i << endl ;
       }
    }
    system("pause");
    return 0;
}
1
12 / 12 / 6
Регистрация: 15.01.2015
Сообщений: 36
23.01.2018, 15:38
Useer, из-за соображений более быстрого решения вот мой код
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
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> divisors;
int main()
{
    ios::sync_with_stdio(0);//ускоряет при чтении cin , cout
    int n,i;
    cout << "Введите число N" << endl;
    cin >> n  ;
    for (i = 1;i * i <= n;i++) {
        if(n % i == 0)
        {
            if(i * i != n)
                divisors.push_back(i);
            divisors.push_back(n / i);
        }
    }
    sort(divisors.begin() , divisors.end());
    for(int i = 0;i < (int)divisors.size();i++)
        cout << divisors[i] << " ";
    return 0;
}
3
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.01.2018, 17:08
Лучший ответ Сообщение было отмечено Useer как решение

Решение

с проверкой условия

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
    int X,i;
    do
    {
    cin >> X;
    if (X<1 || X>1000000) cout <<"1<=x<=1000000, Repeat please...\n";
    }
    while (X<1 || X>1000000);    
    for (i = 1; i<=X; i++) 
    if (X%i==0) cout << i <<" ";
    system("pause");
    return 0;
}
2
 Аватар для bedvit
1208 / 259 / 22
Регистрация: 20.05.2016
Сообщений: 1,136
Записей в блоге: 21
23.01.2018, 17:59
для любого натурального числа (знаков до 30-40, далее просто подождать придется )
https://www.cyberforum.ru/blog... g4754.html
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.01.2018, 18:03
Цитата Сообщение от denistymchuk Посмотреть сообщение
из-за соображений более быстрого решения
Еще быстрее можно разложить число на простые делители и формировать из них всевозможные комбинации. Ну и код был бы посложнее... Впрочем, совершенству не предела.
Ну и для чисел типа p, p2, p*q, где p, q - простые, такой подход выигрыша не даст.
Можно еще заранее составить список простых и использовать его...
В общем, хоть задача и кажется простейшей, здесь над чем голову поломать (если охота, конечно).
0
 Аватар для bedvit
1208 / 259 / 22
Регистрация: 20.05.2016
Сообщений: 1,136
Записей в блоге: 21
23.01.2018, 18:10
Байт, вы не смотрели мою ссылку? (там я попытался оптимизировать разложение). Вы правильно говорите -
совершенству нет предела.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
23.01.2018, 18:15
Цитата Сообщение от bedvit Посмотреть сообщение
вы не смотрели мою ссылку?
Спасибо, посмотрел. Интересно. Ничего революционно нового, но, кажется, все элементарные подходы были задействованы. (Отдаю себе полный отчет в том, что элементарно - не значит просто )
0
 Аватар для bedvit
1208 / 259 / 22
Регистрация: 20.05.2016
Сообщений: 1,136
Записей в блоге: 21
23.01.2018, 18:43
Байт, Спасибо! Критику принимаю, готов добавить что-то, если это действительно эффективно и не сильно масштабно (конечно есть серьезные алгоритмы - пишутся серьезными командами)

Добавлено через 3 минуты
Делюсь кодом и в этой теме, пользуйтесь (см. по ссылке в посте#5).
0
2 / 2 / 0
Регистрация: 03.11.2017
Сообщений: 87
25.01.2018, 16:34  [ТС]
а как сделать чтоб выдавало на сколько цифр делится например вводишь 13 ответ 2
то есть делится на 1 и 13?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.01.2018, 16:45
Лучший ответ Сообщение было отмечено Useer как решение

Решение

Useer, просто поставить счётчик - старайтесь такие простые моменты осваивать

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    int X,i, kol=0;
    do
    {
    cin >> X;
    if (X<1 || X>1000000) cout <<"1<=x<=1000000, Repeat please...\n";
    }
    while (X<1 || X>1000000);    
    for (i = 1; i<=X; i++) 
    if (X%i==0)
    {
    cout << i <<" ";
    kol++;
    }
    cout <<"kol="<<kol;
    system("pause");
    return 0;
}
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
25.01.2018, 17:36
Цитата Сообщение от Useer Посмотреть сообщение
на сколько цифр делится
Известно ли уважаемому ТС, что "13" - это НЕ ЦИФРА.
Понятия ЧИСЛО и ЦИФРА - это разные понятия, разные вещи. Иногда вас здесь пытаются понять, но лучше все-таки не рассчитывать на понимание, а грамотно ставить вопрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2018, 17:36
Помогаю со студенческими работами здесь

Найти все делители натурального числа N
помогите найти все делители натурального числа N. в С++

Найти все делители числа 1234
Найти все делители числа 1234

Найти все делители данного числа
Вы поняли, что скоро для города начнется эра торговли, и чтобы быть готовым к ней, вы пошли получать дополнительное математическое...

Найти все делители целого положительного числа
Найти все делители целого положительного числа

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru