Решение задачи 2-простое число с Acmp

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


Число называется 2-простым, если являются простыми числа, составленные из цифр этого числа в возрастающем и убывающем порядках.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int long long n, k = 1, s = 0, s1 = 0;
 
    cin >> n;
    vector<int> a;
    while(n){
        a.push_back(n % 10);
        n/=10;
    }
    sort(a.begin(),a.begin() + a.size());
    for(int i = 0; i < a.size(); ++i){
        for(int j = 0; j < a.size() - 1 - i; ++j)
            k*=10;
        s+=a[i] * k;
        k = 1;
    }
    for(int i = a.size() - 1, t = 0; i >= 0;  --i,t++){
        for(int j = 0; j < a.size() - 1 - t; ++j)
            k*=10;
        s1+=a[i] * k;
        k = 1;
    }
 
    for(int i = 2; i <= sqrt(s); ++i)
        if(!(s % i)){
           cout << "No";
           return 0;
        }
    for(int i = 2; i <= sqrt(s1); ++i)
        if(!(s1 % i)){
           cout << "No";
           return 0;
        }
 
    cout << "Yes";
    return 0;
}

         

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



Комментарии

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