3366 - Număr întreg periodic
Enunt
Alice a devenit interesată de numere întregi periodice. Spunem că un număr întreg pozitiv X e periodic cu lungimea L dacă există un întreg pozitiv P cu L cifre astfel incat X poate fi scrie ca PPPP...P.
De exemplu: Numărul X=123123123 e periodic cu lungimile L=3 (P=123) și L=9 (P=123123123). Numărul X=42424242 e periodic cu lungimile L=2, L=4 și L=8. Numărul X=123445 e periodic cu lungimea L=5.
Cerința
Pentru o perioadă dată de lungime L și un număr întreg pozitiv A, Alice vrea să găsească un număr X strict mai mare ca A astfel încât X sa fie periodic cu lungimea L.
Date de intrare
Fișierul de intrare periodicin.txt va conține pe prima linie numărul L ce reprezintă lungimea perioadei. Pe a doua linie, numărul natural nenul A cu cel mult 100000 de cifre.
Date de ieșire
Fișierul de ieșire periodicout.txt va conține pe prima linie numărul S, reprezentând suma numerelor de pe a doua linie a fișierului de intrare.
Restricții și precizări
- 1 ⩽ L ⩽ 100000
Exemplu 1
- periodicin.txt
- 3
- 123456
- periodicout.txt
- 124124
- Datele corespund restrictiilor
Exemplu 2
- periodicin.txt
- 3
- 12345
- periodicout.txt
- 100100
- Datele corespund restrictiilor
Exemplu 3
- periodicin.txt
- 0
- 0
- periodicout.txt
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line> 33366 - Numar intreg periodic def is_valid_input(L, A):
return 1 <= L <= 100000 and 0 < A < 10**100000
def find_periodic_number(L, A):
period = "1" + "0" * (L - 1) X = int(period) while X <= A: X += int(period) return X
def main():
with open("periodicin.txt", "r") as file_in, open("periodicout.txt", "w") as file_out: L = int(file_in.readline().strip()) A = int(file_in.readline().strip())
if is_valid_input(L, A): result = find_periodic_number(L, A) file_out.write(str(result) + "\n") file_out.write("Datele corespund restrictiilor\n") else: file_out.write("Nu au fost respectate cerintele impuse\n")
if __name__ == "__main__":
main()
</syntaxhighlight>