Решение задачи Простой цифровой корень с Acmp

Без пояснения   Просмотров: 12


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

Код

#include <bits/stdc++.h>
 
using namespace std;
bool delta(long long n)
{
    bool b = true;
    for(long long i = 2; i <= sqrt(n); ++i)
        if(!(n % i)){
            b = false;
            break;
        }
    return b;
}
int main()
{
    long long  n;
    cin >> n;
    if(n ==  1 || n == 4 || n == 6|| n == 8 || n == 9){
        cout << 0;
        return 0;
    }
    else
        if(delta(n)){
            cout << n;
            return 0;
        }
    else{
        bool b = true;
        while(b){
            int s = 0;
            while(n){
                s+=n % 10;
                n/=10;
            }
            n = s;
            if(n ==  1 || n == 4 || n == 6|| n == 8 || n == 9){
                cout << 0;
                return 0;
            }
            if(delta(n)){
                cout << n;
                return 0;
            }
    }}
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться