complete 1676.py 2981.py 3036.py
This commit is contained in:
20
zeta_python/completed/1676.py
Normal file
20
zeta_python/completed/1676.py
Normal file
@@ -0,0 +1,20 @@
|
||||
def solve(N):
|
||||
if N == 0 or N == 1:
|
||||
return 0
|
||||
count2 = 0
|
||||
count5 = 0
|
||||
|
||||
for i in range(2, N + 1):
|
||||
while i % 2 == 0 or i % 5 == 0:
|
||||
if i % 2 == 0:
|
||||
i //= 2
|
||||
count2 += 1
|
||||
elif i % 5 == 0:
|
||||
i //= 5
|
||||
count5 += 1
|
||||
|
||||
return min((count2, count5))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(solve(int(input())))
|
||||
16
zeta_python/completed/1676_shortcut.py
Normal file
16
zeta_python/completed/1676_shortcut.py
Normal file
@@ -0,0 +1,16 @@
|
||||
def solve(N):
|
||||
if N == 0 or N == 1:
|
||||
return 0
|
||||
count5 = 0
|
||||
|
||||
for i in range(5, N + 1, 5):
|
||||
while i % 5 == 0:
|
||||
if i % 5 == 0:
|
||||
i //= 5
|
||||
count5 += 1
|
||||
|
||||
return count5
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(solve(int(input())))
|
||||
32
zeta_python/completed/2981.py
Normal file
32
zeta_python/completed/2981.py
Normal file
@@ -0,0 +1,32 @@
|
||||
def divisor(x):
|
||||
divs = []
|
||||
for i in range(1, int(x ** (1 / 2)) + 1):
|
||||
if x % i == 0:
|
||||
divs.append(i)
|
||||
for d in divs[::-1]:
|
||||
t = x // d
|
||||
if d == t:
|
||||
continue
|
||||
divs.append(x // d)
|
||||
return divs
|
||||
|
||||
|
||||
def gcd(x1, x2):
|
||||
while x2 != 0:
|
||||
temp = x1 % x2
|
||||
x1 = x2
|
||||
x2 = temp
|
||||
return x1
|
||||
|
||||
|
||||
def solve(N, M):
|
||||
M.sort()
|
||||
last_night = M[1] - M[0]
|
||||
for i in range(1, N - 1):
|
||||
last_night = gcd(last_night, M[i + 1] - M[i])
|
||||
return " ".join(map(str, divisor(last_night)[1:]))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
n = int(input())
|
||||
print(solve(n, list(map(int, (input() for i in range(n))))))
|
||||
24
zeta_python/completed/3036.py
Normal file
24
zeta_python/completed/3036.py
Normal file
@@ -0,0 +1,24 @@
|
||||
def fraction_ize(p, q):
|
||||
while True:
|
||||
# one process
|
||||
for i in range(2, int(max((p, q)) ** (1 / 2)) + 1):
|
||||
if q % i == 0:
|
||||
if p % i == 0:
|
||||
q //= i
|
||||
p //= i
|
||||
break
|
||||
else:
|
||||
break
|
||||
return p, q
|
||||
|
||||
|
||||
def solve(N, M):
|
||||
chains = M[0]
|
||||
T = []
|
||||
for i in range(1, N):
|
||||
T.append(fraction_ize(chains, M[i]))
|
||||
return "\n".join(f"{p}/{q}" for p, q in T)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(solve(int(input()), list(map(int, input().split()))))
|
||||
Reference in New Issue
Block a user