Răspuns :
Nu e buna conditia la al doilea while. Cat timp i exista..pai i-ul nu stie pana unde sa mearga si programul unde sa se opreasca. i-ul intr-adevar, incepe de la 2, dar, la inceputul lui while, ai pus i++ asa ca se va face 3 din start, si nu-i bun. La if ai scris bine. In caz ca a%i==0, ok=0. Apropo, cand ai o singura instructiune, nu e nevoie sa o pui in acolade. Dupa al doilea while, ai pus if(a==1) ok=0; Aici nu prea am inteles ce ai vrut sa faci. a-ul este numarul pe care l-ai citit sus. Daca a, sa zicem, e 13, nu va fi egal cu 1. Urmatorul while e la fel ca primul, ceea ce inseamna ca are aceleasi probleme.
Am facut si eu problema. Ai poza mai jos. Iti recomand sa mergi cu for. Primul for verifica daca n este prim, iar daca este, face inversul. Dupa ce termina, verifica daca si el este prim. Iar daca este, va afisa da, altfel nu.
Apropo: la for, i-ul merge de la 2 pana la n/2, respectiv inv/2;
Daca nu ti-a iesit din prima, nu te descuraja. Incearca sa copiezi in c++ cum am facut si sa intelegi mersul. Bafta :D

Ai explicatia in imagini si codul in fisierul text.


Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile v-au fost de ajutor. Dacă aveți întrebări suplimentare sau aveți nevoie de asistență, nu ezitați să ne contactați. Revenirea dumneavoastră ne-ar onora, așa că nu uitați să ne adăugați la favorite!