Informatică, întrebare adresată de lucabostangiu, 8 ani în urmă

Se citeste din fisierul date.in de pe prima linie un numar natural n ,iar de pe linia urmatoare un sir de n numere intregi. Sa se afiseze in date.out nr prime din sir ,iar daca nu sunt sa se afiseze un mesaj adecvat. Va rog ajutati-ma am nevoie maine! Rog seriozitate am facut ceva ,dar trebuie sa merg la meditatii si nu mai am timp sa termin! FUNDA!

Răspunsuri la întrebare

Răspuns de Seckar
3
Nu e super greu. 

De citit si scris in fisier te las pe tine sa faci, eu iti dau idea programului. 

O sa iti atasez o rezolvare ceva mai avansata si o sa iti explic putin unde probabil ca nu stii.

1. Nu e tocmai bine sa folosesti using namespace std, e mai ok sa specifici doar ce anume ai nevoie din std, asa cum am facut eu acolo, pentru ca tu de namespace std nu ai nevoie decat pt un cin si cout si endl. 

2. in caz ca nu ai mai auzit de bool, e un tip de variabila, ca int sau char, doar ca poate lua valori true sau false, (sau 1 si 0).

3. Pur si simplu am luat la rand numerele cu un for, il verific pe fiecare daca e prim, si daca am gasit un prim atunci il afisam sau scriem in fisier dupa nevoie.

4. O mica smecherie matematica este ca pentru a verifica daca un nr e prim, nu e nevoie sa verifici decat divizori de la 2 pana la radical din acel numar, si aia am facut si eu acolo, sqrt e radicalul, radacina patratat ,sqrt vine de la square root. Floor iti aproximeaza un numar cu virgula la numarul intreg inferior(din 1,54 face 1, din 3,35 face 3, din 5,7 face 5 etc.) asa ca am mers pur si simplu de la 2 pana la radical si am verificat daca numarul are sau nu divizori.

5. Cand am gasit un divizor stiu clar ca nu e prim asa ca nu are rost sa mai stau sa vad daca mai are si altii, imi pun variabila isPrime pe fals si cu break ies din for-ul in care sunt.

Asta face break, iese din primul for/while in care esti.
Anexe:

lucabostangiu: Ai putea sa faci un program mai simplu te rog??? Am invatat doar while,for,if,cout,cin si chestii de baza....
lucabostangiu: Ok inteleg radicalul
Seckar: Super. Eu am o mica regula, ori nu dau cod deloc, ori daca dau il dau destul de avansat ca sa si invete lumea ceva cand se uita la el. Dar iti pot explica absolut fiecare linie de cod pe care nu o intelegi!
lucabostangiu: Iti multumesc,dar profa noastra de informatica nu ne lasa sa aducem informatii in plus . Ma rog ai inteles tu...
lucabostangiu: Daca nu poti sa imi faci nu este nici o problema oricum o sa o discutam maine.
Seckar: Ah, e din ala cu pitici pe creier care daca nu se simte superioara incepe sa o doara... nu mai continui ca nu e voie sa va invat la cuvinte urate pe voi astia mici :)))
Seckar: Ar trebui sa merga si daca in loc de i <= floor..... pui pur si simplu i < nums[i] (strict mai mic aici)
Seckar: si sterci de tot acel break.
Seckar: iar in loc de bool, isPrime il poti face si int fara probleme
Seckar: Desi unor asemenea profi merita sa le vii cu temele facut in alte limbaje sa se uite la tema ca la nave spatialeca sa vada ca nu sunt dumnezei.
Alte întrebări interesante