Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 115
#1

Получить все делители заданного числа - C++

06.10.2015, 16:44. Просмотров 1136. Ответов 8
Метки нет (Все метки)

Дано натуральное число n. Получить все его натуральные делители.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2015, 16:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Получить все делители заданного числа (C++):

Получить все натуральные делители заданного числа n - C++
Дано натуральное число n . Получить все его натуральные делители.

Получить все простые делители заданного числа - C++
Дано натуральное число n. Получить все простые делители этого числа. (нужно использовать функцию) #include <iostream> #include...

Получить все простые делители заданного натурального числа - C++
Бьюсь с этой задачей уже несколько часов. Выдает сбой в вычислениях, и я не могу понять почему. За проверку брал число 1463....

Функция, определяющая все делители заданного числа - C++
Как создать функцию, которая определяет все правильные делители одного числа. n надо вводить например: 15 - 1 3 5 15. мои наброски: ...

Вывести все делители заданного натурального числа с++ - C++
Вывести все делители заданного натурального числа

Найти все простые делители заданного натурального числа - C++
Дано натуральное число n. Получить все простые делители этого числа.

8
Goldutop
10 / 10 / 7
Регистрация: 04.09.2014
Сообщений: 62
Завершенные тесты: 1
06.10.2015, 17:26 #2
garnier,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    int number(56);
 
    for (int i(1); i <= number; i++)
    {
        if (number % i == 0)
        {
            cout << i << " ";
        }       
    }
 
    cout << endl;
 
    system("PAUSE");
}
0
Пытливый Ум
20 / 20 / 8
Регистрация: 04.06.2015
Сообщений: 126
06.10.2015, 17:34 #3
C++
1
2
3
4
unsigned int num = 0;
std::cin>>num;
for (unsigned int i = 1;i <= num; i++)
{ if((num % i) == 0) std::cout << i << std::endl; }
0
_Ivana
3227 / 1855 / 156
Регистрация: 01.03.2013
Сообщений: 5,080
Записей в блоге: 5
06.10.2015, 18:46 #4
Пытливый Ум, а почему до num, а не до 10*num?
0
Пытливый Ум
20 / 20 / 8
Регистрация: 04.06.2015
Сообщений: 126
07.10.2015, 08:11 #5
_Ivana, амм.. я не люблю отвечать вопросом на вопрос, но а почему 10 * num?)мы перебираем все делители, вплоть до самого числа
0
mihey1993
322 / 48 / 19
Регистрация: 07.09.2014
Сообщений: 217
07.10.2015, 10:01 #6
Пытливый Ум, я не знаю, что предполагал _Ivana, задавая свой вопрос, но касательно верхней границы цикла - натуральный делитель числа никак не может быть больше половины этого числа.

Добавлено через 41 секунду
И кстати уж единицу-то можно не проверять
0
Пытливый Ум
20 / 20 / 8
Регистрация: 04.06.2015
Сообщений: 126
07.10.2015, 10:20 #7
mihey1993, это почти так - не имеет, кроме него самого же
в первой версии программы, я выводил отдельно 1 и само число, а потом решил в один цикл пихнуть, чтоб гармоничнее смотрелось.

добавил для успокоения души)

C++
1
2
3
4
5
6
unsigned int num = 0;
std::cin>>num;
std::cout << "1" << std::endl;
for (unsigned int i = 2;i <= (num >> 1); i++)
{ if((num % i) == 0) std::cout << i << std::endl; }
std::cout << num << std::endl;
0
Байт
Эксперт C
17659 / 11697 / 1863
Регистрация: 24.12.2010
Сообщений: 23,325
07.10.2015, 10:24 #8
Можно считать до корня из number и при нахождении делителя d включать number/d
0
Пытливый Ум
20 / 20 / 8
Регистрация: 04.06.2015
Сообщений: 126
07.10.2015, 10:29 #9
Байт, способов оптимизации - масса. от хранения базы простых делителей, до раздельной проверки нечётных и чётных чисел. даже цикл можно свернуть таким образом, что в теле ничего писать не надо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2015, 10:29
Привет! Вот еще темы с ответами:

Для заданного числа найти все его делители - C++
вот код #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; void main () { int n,i; printf...

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

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

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


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

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

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