Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/225: Рейтинг темы: голосов - 225, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 22
1

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

02.03.2012, 16:42. Показов 43190. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти количество делителей натурального числа. Сколько из них четных через С++ если не скложно коментарии к строкам
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2012, 16:42
Ответы с готовыми решениями:

Помогите разобраться: Найти количество четных делителей натурального числа.
Здравствуйте, уважаемые пользователи. Нехватка времени вынуждает меня прибегнуть к помощи умных...

Найти сумму четных делителей натурального числа
пишу вот так , но не пойму до конца логику расчетов...объясните что забыл? #include <iostream>...

Найти сумму четных делителей натурального числа
Найти сумму ЧЕТНЫХ делителей натурального числа

Найти количество положительных делителей натурального числа n
Задано натуральное число n. Нужно вывести одно число - количество положительных делителей числа n.

1
32 / 26 / 11
Регистрация: 01.03.2012
Сообщений: 98
02.03.2012, 17:42 2
Лучший ответ Сообщение было отмечено Lizardomsk как решение

Решение

Самый простой способ (без оптимизации):
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
#include <tchar.h>
#include <stdio.h>
#include <iostream>
using namespace std;
 
int main()
{
  int k, i, N; // k - кол-во делителей заданного числа; i - счетчик цикла; N - само заданное число.
  int even; // кол-во четных делителей
  cin >> N; // вводить надо натуральное число (от 1).
  
  k = 0;
  even = 0;
  for(i=1; i<=N; i++)
  {
    if(N%i == 0) // если остаток от деления = 0, это значит, что число i - делитель
    {
      k++;  
      if(i%2 == 0)
        even++;
    }
  }
 
  cout << "Делителей натурального числа " << N << " - " << k << "; Из них четных - " << even << endl;
  system("pause");
  return 0;
}
ЗЫ алгоритм можно сильно оптимизировать, т.к. для любое натуральное число > 1 имеет 2 делителя (1 и само число).
Соответственно единица нечетная, а само число надо проверить N%2 должно быть = 0.
Т.е. цикл можно делать от 2 до N-1.
ЗЫЫ можно еще оптимизировать алгоритм: после нахождения делителя можно делить N на получившееся число, это будет еще один делитель.
(пример: число 57, один из делителей - 3, теперь делим 57 на 3 и получаем еще один делитель, равный 19).
Ну в принципе, способов оптимизации может быть еще много, это для примера.
1
02.03.2012, 17:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2012, 17:42
Помогаю со студенческими работами здесь

Найти количество делителей натурального числа, больших K
Помогите пожалуйста надо написать программу которая: Найти количество делителей натурального...

Найти количество делителей натурального числа N. больших К
Найти количество делителей натурального числа N больших К. в с++

Найти количество нечетных делителей натурального числа, больших К
Прошу помочь с 3-мя задачками очень нужно сдать а сделать никак не могу. 2) Найти количество...

Длинная арифметика. Найти количество делителей n-значного натурального числа (n > 20)
Найти количество делителей n-значного натурального числа (n &gt; 20). Помогите с задачей...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru