2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289
1

Функция находящая все делители натурального числа

28.10.2018, 12:33. Показов 2110. Ответов 7
Метки нет (Все метки)

Дано натуральное число. Найти все его делители. Подсчитать их количество. Найти сумму всех делителей.
 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2018, 12:33
Ответы с готовыми решениями:

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

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

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

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

7
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,525
28.10.2018, 13:36 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
sd = kd = 0;
for(i=2; i*i <=n; i++) {
  if (n%i==0) {
    kd++;
    sd += i;
    i2 = n/i;
    if (i2!= i) {
      kd++;
      sd += i2;
    }
  }
}
Псевдокод. Считает только делители кроме 1 и самого числа. Если их тоже надо учитывать
C++
1
2
iif (n!=1) { kd += 2; sd += n + 1; }
else { kl++; sd++; }
0
2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289
28.10.2018, 20:49  [ТС] 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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, d, d2, s = 0, k = 0, sum=0;
    cout << "Введите натуральное число: ";
    cin >> n;
    cout << "Все его делители: ";
    for (d = 1; d <= n; d++) {
        if (n%d == 0) {
            k++;
            s += d;
            d2 = n / d;
            if (d2 != d) {
                k++;
                s += d2;
            }
            sum += d;
            cout << " " << d;
        }
    }
    cout << endl;
    cout << "Сумма его делителей: " << sum << endl;
    cout << "Количество его делителей: " << k/2;
    _getch();
    return 0;
}
Исправьте, пожалуйста, так, чтобы было с функцией.
1
390 / 258 / 194
Регистрация: 02.05.2017
Сообщений: 1,003
28.10.2018, 21:07 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
void f(int num){
    int counter(1),sum(1);
    for(int i = 2;i*i <= num;++i)if(!(num%i)){
        sum += i+(num/i);
        counter += 2;
    }
    ++counter;
    sum += num;
    cout << "кол-во : сумма\n";
    cout << counter << " : " << sum;
}
 
int main()
{
    int num;
    cin >> num;
    f(num);
    cout << endl;
    return 0;
0
62 / 50 / 39
Регистрация: 03.01.2017
Сообщений: 133
28.10.2018, 21:10 5
Сойдёт?

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
#include <iostream>
#include <stdlib.h>
#include <math.h>
 
using namespace std;
 
int dks (int n) { //функция
    
    int d, d2, s = 0, k = 0, sum = 0;
    cout << "Все его делители: ";
    for (d = 1; d <= n; d++) {
        if (n%d == 0) {
            k++;
            s += d;
            d2 = n / d;
            if (d2 != d) {
                k++;
                s += d2;
            }
            sum += d;
            cout << " " << d;
        }
    }
    cout << endl << "Сумма его делителей: " << sum;
    cout << endl << "Количество его делителей: " << k/2 <<endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n;
    cout << "Введите натуральное число: ";
    cin >> n;
    dks (n);
    
    system ("Pause");
    return 0;
}
0
2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289
28.10.2018, 21:56  [ТС] 6
А можете добавить, чтобы и делители выводились?
0
390 / 258 / 194
Регистрация: 02.05.2017
Сообщений: 1,003
28.10.2018, 22:32 7
wwmax, можем,умеем, но сверху у вас есть ваш же код,но с функцией,который это итак делает,пусть и не совсем оптимально
1
Диссидент
Эксперт C
26856 / 16758 / 3675
Регистрация: 24.12.2010
Сообщений: 37,525
28.10.2018, 23:54 8
Цитата Сообщение от wwmax Посмотреть сообщение
А можете добавить, чтобы и делители выводились?
Но много полезнее будет вам это сделать самому. Эта скушная работа нам ничего не даст. А вам - на пользу будет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 23:54
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru