Решение задачи Разные цифры с Acmp

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


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

Код

#include <bits/stdc++.h>
 
using namespace std;
bool DigitCount(long long n, long long i)
{
    bool b = 1;
    vector<int> a;
    while(n >= i){
        a.push_back(n % i);
        n/=i;
    }
    if(n < i)
        a.push_back(n);
    sort(a.begin(),a.end());
    for(int i = 0; i < a.size() - 1; ++i)
        if(a[i] == a[i + 1]){
            b = 0;
            break;
        }
    return b;
}
int main()
{
    long long n;
    cin >> n;
    for(long long i = 2; i < 37; ++i){
        if(DigitCount(n,i))
            cout << i << " ";
    }
    return 0;
}

         

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



Комментарии

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