1295 - Cif Pagini: Diferență între versiuni

De la Universitas MediaWiki
Linia 18: Linia 18:


== Restricţii şi precizări ==
== Restricţii şi precizări ==
1 ≤ n ≤ 1000  
1 ≤ '''n''' ≤ 1000  


1 ≤ p < 50.000
1 ≤ '''p''' < 50.000


v poate fi doar 1 sau 2;
'''v''' poate fi doar 1 sau 2;


Paginile volumelor se numerotează de la 1 la numărul total de pagini; dacă primul volum are k pagini, atunci volumul al doilea se va numerota cu k+1, ș.a.m.d.
Paginile volumelor se numerotează de la 1 la numărul total de pagini; dacă primul volum are '''k''' pagini, atunci volumul al doilea se va numerota cu '''k+1''', ș.a.m.d.


== Exemplul 1 ==
== Exemplul 1 ==

Versiunea de la data 1 aprilie 2023 10:54

Sursa: [1]

Cerinţa

Într-o bibliotecă se află o carte cu o proprietate mai ciudată. Este alcătuită din n volume, și pentru fiecare fiecare volum numărul de pagini este număr prim. Mai mult, numerele paginilor volumelor sunt numere prime consecutive.

Se dau numerele n p v reprezentând numărul de volume ale cărții, numărul de pagini ale primului volum și numărul cerinței care trebuie rezolvate. Să se afle:

a) numărul total de pagini;

b) numărul total de cifre folosite pentru numerotarea paginilor celor n volume.

Date de intrare

Programul conține pe prima linie numerele n p v reprezentând numărul de volume ale unei cărți, numărul de pagini ale primului volum și respectiv numărul cerinței.

Date de ieșire

Dacă v=1, programul va conține numărul nt , reprezentând numărul total de pagini.

Dacă v=2, programul va conține numărul np, reprezentând numărul total de cifre folosite pentru numerotarea paginilor celor n volume.

Restricţii şi precizări

1 ≤ n ≤ 1000

1 ≤ p < 50.000

v poate fi doar 1 sau 2;

Paginile volumelor se numerotează de la 1 la numărul total de pagini; dacă primul volum are k pagini, atunci volumul al doilea se va numerota cu k+1, ș.a.m.d.

Exemplul 1

Intrare
4
Ieșire
Datele corespund cerințelor.
576



Rezolvare

#4273
def patrate_perfecte(n):
    patrate = []
    i = 1
    while len(patrate) < n:
        patrat = i * i
        patrate.append(patrat)
        i += 1
    return patrate


def calculeaza(numbers):
    product = 1
    for number in numbers:
        product *= number
    return product


def validare_numar(n):
    if n < 1 or n > 10:
        return False
    return True


if __name__ == '__main__':
    n = int(input("Introduceți numărul n: "))
    if not validare_numar(n):
        print("Datele introduse nu corespund cerintelor.")
    else:
        squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)