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
- 411524115241152
- Datele corespund restrictiilor
Exemplu 2
- periodicin.txt
- 0
- 0
- periodicout.txt
- Nu au fost respectate cerintele impuse
Rezolvare
<syntaxhighlight lang="python" line> 33366 - Numar intreg periodic def find_periodic_number(L, A):
# Calculează câte perioade sunt necesare pentru a depăși A num_periods = (A + L - 1) // L
# Construiește numărul periodic periodic_number = int(str(num_periods) * L)
return periodic_number
def main():
try: # Citeste datele de intrare din fisier with open("periodicin.txt", "r") as input_file: L = int(input_file.readline().strip()) A = int(input_file.readline().strip()) except FileNotFoundError: print("Fisierul periodicin.txt nu exista.") return except ValueError: print("Datele de intrare nu sunt valide.") return
# Verifică dacă L este în intervalul specificat if 1 <= L <= 100000: # Găsește numărul periodic periodic_result = find_periodic_number(L, A)
# Scrie rezultatul în fisierul de ieșire with open("periodicout.txt", "w") as output_file: output_file.write(str(periodic_result) + "\n") output_file.write("Datele corespund restrictiilor\n") else: print("Nu au fost respectate cerintele impuse.")
if __name__ == "__main__":
main()
</syntaxhighlight>