3227 - Tramvaie
Enunt[edit | edit source]
Timp de t
zile Cebîșev a numărat in drum spre școală x
mașini și y
tramvaie. Se știe că numărul de tramvaie este egal cu numărul de numere mai mici sau egale cu x
si prime cu acesta.
Cerința[edit | edit source]
Știindu-se numărul de zile si numărul de mașini numărate în fiecare zi, calculați pentru fiecare zi numărul de tramvaie numărate de Cebîșev.
Date de intrare[edit | edit source]
Fișierul de intrare este tramvaie.in
Acesta conține pe primul rând un număr natural t
, reprezentând numărul de zile.
Pe a doua linie a fișierului de intrare se găsesc t
numere, reprezentând numarul de masini văzute în fiecare zi de Cebîșev.
Date de iesire[edit | edit source]
Fișierul de ieșire este tramvaie.out
Acesta conține t
numere reprezentând numărul de tramvaie văzute de Cebîșev în fiecare zi.
Restricții și precizări[edit | edit source]
0 < x, y, t < 1 000 006
- Se consideră că orice număr este prim cu
1
.
Exemplul 1:[edit | edit source]
tramvaie.in
2 2 3
tramvaie.out
1 2
Încărcare soluție[edit | edit source]
Lipește codul aici[edit | edit source]
<syntaxhighlight lang="python" line="1"> import sys
prob = "tramvaie" in_file = open(prob + ".in", "r") out_file = open(prob + ".out", "w") sys.stdin = in_file sys.stdout = out_file
N = int(input()) euler = [i for i in range(1000006)] for i in range(2, 1000006):
if euler[i] == i: euler[i] -= 1 for j in range(2, 1000006, i): euler[j * i] = euler[j * i] // i * (i - 1)
for n in range(1, N + 1):
temp = int(input()) print(euler[temp], end=" ")
in_file.close() out_file.close()
</syntaxhighlight>