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

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

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

Простой Цифровой Корень - C++

18.07.2016, 11:19. Просмотров 361. Ответов 2
Метки нет (Все метки)

Привет родные форумчане! Пожалуйста помогите решить буду особенно благодарен если напишите код с комментариями что как работает, заранее спасибо ребят!

Простой цифровой корень натурального числа N ПЦНК(N) определяется следующим образом: если N - простое число, то ПЦНК(N)=N, если N = 1, 4, 6, 8 или 9 (т.е. однозначное и непростое), то ПЦНК(N)=0. В остальных случаях ПЦНК(N)=ПЦНК(S(N)), где S(N) - сумма цифр числа N. По заданному N надо найти ПЦНК(N).
Требования:
Напишите функцию для определения простоты числа
Напишите функцию для определения суммы цифр числа
Напишите функцию для нахождения ПЦНК

Вход
1
3
128

Выход
0
3
11
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2016, 11:19     Простой Цифровой Корень
Посмотрите здесь:

Цифровой корень числа - C++
Найти цифровой корень натурального числа (складываются все цифры числа, затем все цифры найденной суммы и т.д. до тех пор, пока не будет...

Найти цифровой корень натурального числа (рекурсия) - C++
Найти цифровой корень натурального числа (x). Алгоритм нахождения цифрового корня в следующем: -Сложить все цифры этого числа (->s) ...

Составить рекурсивную функцию, которая находит цифровой корень целого числа - C++
помогите решить задачу на С++ Составить рекурсивную функцию, которая находит цифровой корень целого числа. Цифровой корень находится...

Составить рекурсивную функцию, которая находит цифровой корень целого числа - C++
Составить рекурсивную функцию, которая находит цифровой корень целого числа. Цифровой корень находится суммой через сумму цифр числа до...

Реализовать программу, которая для заданного N (N<10100) находит его цифровой корень - C++
Реализовать программу, которая для заданного N (N&lt;10100) находит его цифровой корень.

Напечатать все числа интервала [100,200], цифровой корень которых кратный (3,6,9) - C++
Сделайте пожалуйста задачу Напечатать все числа интервала , цифровой корень которых кратный (3,6,9);

Найти корень уравнения методом простой итерации - C++
Циклический вычислительный процесс: Найти корень уравнения х3+х2-6х=0 в интервале от -0,3 до 0,3 с точностью 0,01 методом простой ...

Найти корень многочлена методом простой итерации - C++
здравствуйте ,помогите найти простой корень многочлена методом простой итерации ,1.78*x^5 + 3,2*x^4 - 5*X^3-9.7*x^2+x-21 я что то...

Найти корень заданного уравнения методом простой итерации с заданной точностью - C++
Добрый день форумчане! Не могли бы вы помочь написать программу для решения данной задачи с использованием рекурсии. (№8.23)

Преобразовать цифровой символ в число - C++
добрый вечер, господа возникла необходимость перенести посимвольно циферки из String в массив int грубо говоря есть строка &quot;11001&quot; её...

Цифровой счетчик, добавить шаг счетчика - C++
Цифровой счетчик – это целочисленная переменная с ограниченным диапазоном значений, которая сбрасывается при достижении максимального...

Отобразить наибольший цифровой символ строки - C++
1. Х Строка содержит символы латинского алфавита и цифры. Вывести наибольшую цифру строки.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
regio1961
108 / 108 / 49
Регистрация: 06.06.2016
Сообщений: 249
18.07.2016, 23:17     Простой Цифровой Корень #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
#include <iostream>
 #include <cmath>
 //-------------------------------------------------------------------
 // Функция для определения простоты числа
 //-------------------------------------------------------------------
 bool is_prime( const unsigned long &n )
 {
   const double sqrt_n = sqrt( n );
       for( unsigned d = 2; d <= sqrt_n; ++d )
       {
             if ( !(n % d) )
             return false;
       }
   return ( n != 1 );
 }
 //-------------------------------------------------------------------
 // Функция для определения суммы цифр числа
 //-------------------------------------------------------------------
 unsigned  sum_ciphers( unsigned long n )
 {
   unsigned sum = 0;
       while( n )
       {
         sum += n % 10;
         n   /= 10;
       }
   return sum;
 }
 //-------------------------------------------------------------------
 // Функция для нахождения ПЦНК
 //-------------------------------------------------------------------
 unsigned  root_ciphers( const unsigned long &n )
 {
       if ( is_prime( n ) )
         return n;
       if ( n < 10 )
         return 0;
   return sum_ciphers( n );
 }
 //-------------------------------------------------------------------
 int main()
 {
   unsigned  n = 0;
   std::cout << "Input number ";
   std::cin >> n;
   std::cout << "\n" << root_ciphers( n ) << "\n";
   std::cin.get();
   return 0;
 }
Aerarian
1 / 1 / 0
Регистрация: 28.06.2016
Сообщений: 78
19.07.2016, 11:41  [ТС]     Простой Цифровой Корень #3
regio1961, СПАСИБО!!!
Ответ Создать тему
Опции темы

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