008. Различные цифры

(Время - 1 сек., память - 16 Мб)

Дано целое число N.

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

Входные данные

В единственной строке входного файла input.txt записано одно целое число N (1  N  109), представленное в десятичной системе счисления.

Выходные данные

В единственную строку выходного файла output.txt нужно вывести основания систем счисления в порядке возрастания, разделенные одним пробелом.

Пример

input.txt

output.txt

1

100

11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36

Разбор

В цикле от 2 до 36 по основанию системы счисления находим для каждой из цифр этой системы счисления ее количество в записи числа. Далее проверяем требуемое условие: в записи числа нет одинаковых цифр.

Программа на Паскале

{Автор программы - А.В.Алексеев,  дата написания - 23.04.2012}

var

  n, i : longint;

  k, j, m : integer;

  c : array [0..35] of integer;

  t : boolean;

begin

  assign(input,'input.txt'); reset(input);

  assign(output,'output.txt'); rewrite(output);

  read(n);

  for k:=2 to 36 do

  begin

    i:=n; for j:=0 to k-1 do c[j]:=0;

    while i>0 do

    begin

      m:=i mod k; c[m]:=c[m]+1; i:=i div k

    end;

    t:=true;

    for j:=0 to k-1 do t:=t and (c[j]<2);

    if t then write(k,' ')

  end

end.

Программа на С

 

Информация о задаче

Автор, источник

 

Олимпиада

Муниципальный этап олимпиады в Ханты-Мансийском АО-Югре, 2007-2008 уч. год, 3-й тур

Тематика

Целочисленная арифметика

Примерная сложность

32%

Ссылки в Интернете

Условие, сдача решения – http://acmu.ru/index.asp?main=task&id_task=321

Наш сайт

Сдача решения –

Тесты – Rar

Задача подготовлена

Автор, дата –  Алексеев А.В., 26.04.2012