Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.81
Lizardomsk
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 22
#1

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

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

Найти количество делителей натурального числа. Сколько из них четных через С++ если не скложно коментарии к строкам
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 16:42     Найти количество делителей натурального числа. Сколько из них четных
Посмотрите здесь:

Найти количество делителей натурального числа, больших K C++
Найти количество нечетных делителей натурального числа, больших К C++
Найти сумму четных делителей натурального числа C++
C++ Помогите разобраться: Найти количество четных делителей натурального числа.
Подсчитать количество делителей данного натурального числа. C++
C++ Найти количество четных цифр заданного натурального числа
Найти количество четных цифр заданного натурального числа C++
Для заданного натурального числа N найти количество его делителей C++
C++ Длинная арифметика. Найти количество делителей n-значного натурального числа (n > 20)
Определить К - количество делителей натурального числа N C++
Найти количество положительных делителей натурального числа n C++
Найти количество делителей натурального числа N. больших К C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SkyDream
32 / 26 / 2
Регистрация: 01.03.2012
Сообщений: 98
02.03.2012, 17:42     Найти количество делителей натурального числа. Сколько из них четных #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
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).
Ну в принципе, способов оптимизации может быть еще много, это для примера.
Yandex
Объявления
02.03.2012, 17:42     Найти количество делителей натурального числа. Сколько из них четных
Ответ Создать тему
Опции темы

Текущее время: 18:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru