Найти - Пользователи
Полная версия: Как можно упростить решение?
Начало » Центр помощи » Как можно упростить решение?
1
gratiani
 k = int(input())
l = int(input())
m = int(input())
n = int(input())
d = int(input())
in0 = []
if k == 1 or l == 1 or m == 1 or n == 1:
    print(d)
elif k > d or l > d or m > d or n > d:
    print(0)
else:    
    for x in range(1, d + 1, k):
        in0.append(x)
    for x in range(1, d + 1, l):
        if x not in in0:
            in0.append(x)
    for x in range(1, d + 1, m):
        if x not in in0:
            in0.append(x)
    for x in range(1, d + 1, n):
        if x not in in0:
            in0.append(x)
    print(len(in0))
Решаю задачу в интерактивном режиме и при вводе больших чисел в переменную d выводит превышение лимита времени. Как можно упростить данную задачу?
Shaman
Попробуйте так:
 k = int(input())
l = int(input())
m = int(input())
n = int(input())
d = int(input())
in0 = set()
if k == 1 or l == 1 or m == 1 or n == 1:
    print(d)
elif k > d or l > d or m > d or n > d:
    print(0)
else:    
    for x in range(1, d + 1, k):
        in0.add(x)
    for x in range(1, d + 1, l):
        if x not in in0:
            in0.add(x)
    for x in range(1, d + 1, m):
        if x not in in0:
            in0.add(x)
    for x in range(1, d + 1, n):
        if x not in in0:
            in0.add(x)
    print(len(in0))
gratiani
 k = int(input())
l = int(input())
m = int(input())
n = int(input())
d = int(input())
out0 = 0
for x in range(1, d+1):
    if x % k == 0 or x % l == 0 or x % m == 0 or x % n ==0:
        out0 += 1
print(out0)
Shaman
теплее
marvellik
рискну свои пять строк добавить
 k,l,m,n,d = [int(input()) for _ in range(5)]
out0 = 0
for x in range(1, d+1):
    out0 += 1 if 0  in (x % k, x % l, x % m, x % n ) else 0
print(out0)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB