Информатика программирование пайтон - Компьютерные вопросы

Вопрос Информатика программирование пайтон

Регистрация
14 Мар 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
317555196_c0e985a33ead909322543abf5ff4c58a_800.jpg

ПОМОГИТЕ ПОЖАЛУЙСТА ??
 
Регистрация
21 Апр 2013
Сообщения
106
Репутация
5
Спасибо
0
Монет
0
import math
n = int(input())
for i in range(1, math.isqrt(n) + 1):
if n % i == 0: print(*{i, n // i}) Но если первый делитель в паре обязательно должен быть больше второго, выражение внутри print немного усложняется: print(*sorted({i, n // i}, reverse=True)) P.S. В Python встроена функция целочисленного квадратного корня и использовать вещественный квадратный корень, рискуя потерять последний делитель из-за погрешности вычислений, не имеет смысла.
 
Регистрация
23 Мар 2013
Сообщения
96
Репутация
0
Спасибо
0
Монет
0
Поскольку требуют выводить делители парами типа
16
16 1
8 2
4
придумалось такое решение n = int(input())
l = []
for i in range(1,n+1):
if not n % i:
l +=
l2 = l[:len(l) // 2]
l1 = l[len(l) // 2:][::-1]
r = [l1,l2]
m = max(list(map(len,r)))
t = 0
for i in range(len(r)):
if len(r) == m:
t = i
for i in range(len(r[t - 1])):
print(r[0], r[1], end=' ')
print('\n',end='')
if len(r[t]) != len(r[t - 1]):
print(r[t][-1])
 
Регистрация
22 Окт 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
n = int(input())

for i in range(1,n+1):
if n % i == 0:
print(i) или более оптимизированно import math

n = int(input())
sqrt_n = int(math.sqrt(n))

for i in range(1, sqrt_n + 1):
if n % i == 0:
print(i)
if i != n // i:
print(n // i)
 
Сверху Снизу