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
4190 - FPatrate
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!
==Cerința== Subprogramul '''patrate''' are trei parametri: *'''n''', prin care primește un număr natural ('''n∈[2,109])'''; *'''x''' și '''y''', prin care furnizează câte un număr natural cu proprietatea că '''x2⋅y2=n'''și '''2≤x<y'''sau valoarea '''0''', prin fiecare dintre aceștia, dacă nu există două astfel de numere. Dacă sunt mai multe astfel de valori, se furnizează cele corespunzătoare unei valori minime a lui '''x'''. Scrieți definiția completă a subprogramului. ==Date de intrare== Se citește de la tastatură '''n''': un număr natural între '''2 și 10^9''' inclusiv. ==Date de ieșire== Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul va afișa: '''x''': un număr natural care să îndeplinească proprietatea că '''x^2 * y^2 = n și 2 ≤ x < y'''. Dacă nu există astfel de numere, '''x''' este '''0'''. '''y'''': un număr natural care să îndeplinească proprietatea că '''x^2 * y^2 = n și 2 ≤ x < y'''. Dacă nu există astfel de numere, '''y''' este '''0'''. Dacă există mai multe perechi '''(x, y)''' care să satisfacă condiția, se va returna perechea care are '''x minim'''. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse.". ==Exemplu== ===Exemplul 1=== ;Intrare :400 ;Ieșire :2 10 ===Exemplul 2=== ;Intrare :16 ;Ieșire :0 0 ===Exemplul 3=== ;Intrare :24 ;Ieșire :0 0 ==Important== Soluția propusă va conține definiția funcţiei cerute. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluției. ==Rezolvare== ===Rezolvare ver. 1=== <syntaxhighlight lang="python" line="1" start="1"> def validare_n(n): if isinstance(n, int) and 2 <= n <= 10**9: return True return False def patrate(n): x = 0 y = 0 for i in range(2, int(n**0.5) + 1): if n % (i**2) == 0: if x == 0 or i < x: x = i y = n // (i**2) return x, y if __name__ == '__main__': n = int(input("Introduceți n: ")) if validare_n(n): print("Datele de intrare corespund restrictiilor impuse.") x, y = patrate(n) print(f"x = {x}, y = {y}") else: print("Datele de intrare nu corespund restrictiilor impuse.") </syntaxhighlight> ==Explicatii== Acest cod definește mai întâi funcția de validare "validare_n", apoi subprogramul "patrate", care primește un număr natural n și returnează o pereche (x, y) care îndeplinește proprietatea dată sau (0, 0) în caz contrar. În final, în cadrul unui bloc "if name == 'main':", este preluată valoarea de intrare de la utilizator și apoi se apelează funcția "patrate".
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