|
Titlul: Indicatorul lui Euler in c++ Scris de: Ionescu Raluca din Martie 21, 2015, 19:51:27 Buna! Ma puteti ajuta si pe mine la o problema ? :) Trebuie sa scriu un algoritm in code blocks care sa determine numarul de numere naturale mai mici decat n , relativ prime cu n.
Ati putea sa imi spuneti ce este in neregula la algoritmul asta ?? Tin sa mentionez ca sunt incepatoare ( clasa a 9 a). Multumesc.:) int n ,i ,e, r; cout<<"n= ";cin>>n; i=1; while(i<=n && i++) e=i; while(e!=0) { r=n%e; n=e; e=r; } if(r==1) cout<<i<<" "; Aici am inceract doar sa afisez numerele prime cu n :) Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: George Marcus din Martie 22, 2015, 13:30:52 Sa nu mai scrii asa ceva "i<=n && i++" in viata ta. Vad ca memorezi valoarea variabilei i in variabila e ca sa nu modifici i-ul. De ce nu faci asta si pentru n? :)
Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: Ionescu Raluca din Martie 22, 2015, 16:09:17 Am incercat si asa si as vrea sa imi spui si mie unde am gresit si cum sa fac daca poti si vrei , bineinteles.. Nu fac de mult informatica si pana acum doar lucruri mai simple.
{ int n ,i , r; cout<<"n= ";cin>>n; for(i=1;i<=n;i++) while(r!=0) {r=n%i; n=i; i=r; } if(r==1) cout<<i<<" "; return 0; } Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: George Marcus din Martie 22, 2015, 16:24:07 Ti-am zis mai sus. In interiorul for-ului trebuie sa memorezi valoarea lui i intr-o alta variabila (tu ai pus e inainte). Dar sa faci asta si pentru n (de exemplu, m=n si apoi lucrezi cu m).
for(i=1;i<=n;i++) { e=i; m=n; while(.... ... } Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: Ionescu Raluca din Martie 22, 2015, 17:40:29 ok ... deci programul o sa arate asa:
int n ,i , r, e, m,r1; cout<<"n= ";cin>>n; for(i=1;i<n;i++) {e=i; m=n; while(r!=0) { r=m%e; m=e; e=r ; } if(r==1) cout<<i<<" "; } Dar tot nu merge . am spus "while(r!=0) "deci se va opri cand r=0 si r==1 o sa fie mereu falsa.... ce as putea sa fac aici ? :) Cum as putea sa memorez penultimul r? mersi pentru mesaj :) Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: George Marcus din Martie 22, 2015, 17:47:13 La penultima iteratie ai e=r. Apoi la ultima iteratie, r devine 0 si faci m=e (e-ul de la iteratia anterioara, adica r-ul anterior). Deci penultimul r e m-ul de la final.
Titlul: Răspuns: Indicatorul lui Euler in c++ Scris de: Ionescu Raluca din Martie 22, 2015, 20:26:59 Mersi mult.. am reusit sa o fac :D
|