Aleks Nots
Просветленный
(22572)
4 года назад
Полярные единички.
Вот еще вариант
N = int(input('>'))
A=[]
e=0
m=0
res='NO'
if N%10 not in [0,2,4,5,6,8]:
~~for _ in range(N+1):
~~~~m=(m*10+1)%N
~~~~e += 1
~~~~A.append('1')
~~~~if m==0:
~~~~~~res='YES'
~~~~~~break
else:
~~res=='NO'
if res=='NO':
~~print(res)
else:
~~#print('1'*e)
~~print(e)
----------------
Вот с выводом самого числа может быть проблема
Так как вывод в терминал - довольно медленный процесс
то, если выводить само число, то только на его вывод может
понадобится несколько секунд если это число возле миллиона,
например для 999983 оно состоит из 999982 единиц
И на моем компе само вычисление этого числа занимает полсекунды, а вывод около четырех секунд, поэтому я вывод самого числа закомментировал, а вместо него сделал вывод количества единиц, что не соответствует условию, зато быстрее и нагляднее.
PS
То, что Вам не нужно для задачи, просто не переписывайте себе.
Входные данные
Программе дано число N (1 ≤ N ≤ 106).
Выходные данные
Вывести минимальное число, удволетворяющее требованию, или "NO" , если такого числа не существует.