Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
1827 – Vector Sum Prim
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursa: [https://www.pbinfo.ro/probleme/1827/vectorsumprim VectorSumPrim] ---- ==Cerinţă== Se dă un șir cu <code>n</code> elemente întregi. Să se afișeze suma elementelor prime din șir. ==Date de intrare== Programul va citi de la tastatură <code>n</code> , reprezentând numărul de elemente ale șirului, apoi <code>n</code> numere întregi reprezentând elementele șirului. ==Date de ieșire== Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele introduse sunt corecte!", apoi se va afișa suma elementelor prime, dacă nu există, se va afișa mesajul "Nu există numere prime!". În cazul în care datele nu respectă restricțiile, se va afișa mesajul "Datele introduse nu sunt corecte!". ==Restricţii şi precizări== *0 <= n <= 100 *valorile elementelor șirului vor fi < 1.000.000 ==Exemple== ===Exemplul 1=== ;Intrare :Introduceti numere de maxim 6 cifre separate prin spatiu:7 9 1 234 ;Ieșire :Datele introduse sunt corecte! :Suma elementelor prime este: 7 ===Exemplul 2=== ;Intrare :Introduceti numere de maxim 6 cifre separate prin spatiu:1234000 12 121 2 ;Ieșire :Datele introduse sunt incorecte! ===Exemplul 3=== ;Intrare :Introduceti numere de maxim 6 cifre separate prin spatiu:4 6 8 12 15 ;Ieșire :Datele introduse sunt corecte! :Nu exista numere prime in sir! ==Rezolvare== <syntaxhighlight lang="python" line="1"> def is_integer(value): return value.isdigit() def este_prim(n): if n < 2: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False return True def verificare_vector(vector): n = 0 for i in vector: if is_integer(i): if 0 < int(i) < 1000000: n += 1 else: print("Datele introduse sunt incorecte!") exit() else: print("Datele introduse sunt incorecte!") exit() if n > 100 or n < 0: print("Datele introduse sunt incorecte!") exit() def suma_elementelor_prime(sir): suma = 0 for nr in sir: if este_prim(nr): suma += nr if suma == 0: print("Nu exista numere prime in sir!") exit() print("Suma elementelor prime este:", suma) if __name__ == '__main__': elem = input(f"Introduceti numere de maxim 6 cifre separate prin spatiu:").split() verificare_vector(elem) lst_int = list(map(int, elem)) print("Datele introduse sunt corecte!") suma_elementelor_prime(lst_int) </syntaxhighlight> ==Explicație rezolvare== Acest program implementează o funcție care calculează suma elementelor prime dintr-un șir de numere date de la tastatură. Funcția is_integer(value) este folosită pentru a verifica dacă un caracter reprezintă un număr întreg și returnează True dacă este, altfel returnează False. Funcția este_prim(n) primește ca parametru un număr întreg și verifică dacă acesta este prim sau nu. Dacă numărul este mai mic decât 2, se consideră că nu este prim. În caz contrar, se verifică dacă numărul este divizibil cu orice număr întreg din intervalul [2, sqrt(n)]. Dacă numărul este divizibil cu un astfel de număr, se consideră că nu este prim, altfel se consideră că este prim. Funcția verificare_vector(vector) verifică dacă vectorul are cel mult 100 elemente și dacă fiecare element este un număr întreg între 1 și 999999. Dacă vectorul este valid, nu se întoarce nimic. Dacă nu, se afișează un mesaj de eroare și se oprește programul. Funcția suma_elementelor_prime(sir) primește ca parametru un șir de numere și calculează suma elementelor prime din acest șir. Pentru fiecare număr din șir, se verifică dacă acesta este prim folosind funcția este_prim(n). Dacă este prim, numărul este adunat la suma. Dacă nu există niciun număr prim în șir, se afișează un mesaj corespunzător și se oprește programul. În caz contrar, se afișează suma elementelor prime din șir. Instrucțiunea if name == 'main': verifică dacă programul este rulat ca script și, în caz afirmativ, apelează funcțiile verificare_vector(elem) și suma_elementelor_prime(lst_int) pentru a verifica datele introduse și calcula suma elementelor prime.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width