3227 - Tramvaie

From Bitnami MediaWiki

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>