Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.70
Дольган
4 / 4 / 1
Регистрация: 13.04.2011
Сообщений: 68
#1

Найти все делители натурального числа n - C++

10.01.2012, 11:13. Просмотров 16489. Ответов 2
Метки нет (Все метки)

Всем Привет !
Нужно написать прогу с использованием пользовательских функций. И пожалуйста облегчите мне задачу ) укажите строки с объявлением , определением и вызовом функций . Заранее благодарен ! И если не сложно , объясняйте как последнему идиоту . У меня мозг совсем не варит после ночной работы
http://www.cyberforum.ru/cpp-beginners/thread684716.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 11:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти все делители натурального числа n (C++):

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

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

Найти все простые положительные делители данного натурального числа
Help!: Дано натуральное число N. Найти все его простые положительные делители....

Для натурального числа n вывести все делители, кроме единицы и самого числа
n вводится с клавиатуры.

Получить все простые делители натурального числа
2. Дано натуральное число n. Получить все простые делители этого числа.

2
co6ak
Кошковед
515 / 503 / 63
Регистрация: 12.04.2010
Сообщений: 1,392
10.01.2012, 11:20 #2
Лучший ответ Сообщение было отмечено Дольган как решение

Решение

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
25
26
#include<iostream>
 
void function ( int ); // объявление ф-ии
 
int main()
{
    int x;
    std::cout << "Enter x: ";
    std::cin  >> x;
    std::cout << std::endl;
    function(x);  // вызов функции
    std::cin.get();
    std::cin.get();
    return 0;
}
 
void function ( int x )  // определение ф-ии
{
    for ( int i = 1; i < x; i ++ )
    {
        if ( x % i == 0 )  // если делится без остатка
        {
            std::cout << i << "\t"; // вывод делителя
        }
    }
}
0
silent_1991
Эксперт С++
5007 / 3066 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
10.01.2012, 11:45 #3
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <vector>
 
// Функция, возвращающая вектор делителей переданного ей числа
std::vector<unsigned> dividers(unsigned n)
{
    // Если проверяем 0 (хотя в задании и сказано, что проверяются натуральные
    // числа, этот случай тоже учтён) - возвращаем пустой вектор
    if (n == 0)
        return std::vector<unsigned>();
 
    // Вектор делителей (пока содержит только само число)
    std::vector<unsigned> divs(1, n);
 
    // Если проверяем 1 - выводим уже готовый вектор, содержащий только саму 1
    if (n == 1)
        return divs;
 
    // Идём по всем числам от n / 2 до 1 и проверяем каждое, является ли оно
    // делителем n
    for (unsigned d = n / 2; d > 1; --d)
        // Проверка на делимость нацело
        if (n % d == 0)
            // Если очередное число является делителем, добавляем его в вектор
            divs.push_back(d);
 
    // Добавляем делитель любого из чисел - 1
    divs.push_back(1);
 
    // Возвращаем найденные делители
    return divs;
}
 
// Главная функция, с которой начнётся выполнение программы
int main()
{
    // Число, для которого необходимо найти делители
    unsigned n;
 
    // Выводим запрос на ввод числа
    std::cout << "Enter number: ";
    // Вводим число
    std::cin >> n;
 
    // Находим все делители числа
    std::vector<unsigned> divs = dividers(n);
 
    // Если получили пустой вектор - был введён 0
    if (divs.empty())
    {
        std::cout << "You enter 0" << std::endl;
    }
    // Если делителей ровно 2 - число является простым
    else if (divs.size() == 2)
    {
        std::cout << "Number is prime" << std::endl;
    }
    // Если делителей 1 или больше двух - выводим все найденные делители
    else
    {
        std::cout << "Dividers: ";
 
        // Просто проходим по вектору делителей и выводим каждый
        for (size_t i = 0; i < divs.size(); ++i)
            std::cout << divs[i] << "; ";
 
        std::cout << std::endl;
    }
 
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2012, 11:45
Привет! Вот еще темы с решениями:

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

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

Найти делители натурального числа
Создать список делителей введенного с клавиатуры натурального числа и вывести...

Найти делители натурального числа, введенного с клавиатуры
3) Найти делители натурального числа, введенного с клавиатуры. При решении...


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

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

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