Buna seara !
Imi puteti spune de de ce nu merge programul meu ? Trebuie sa afisez toate numerele prietene mai mici sau egale decat un numar n introdus de la tastatura. (2 numere sunt prietene daca diferenta dintre ele este de 2 si sunt amandoua numere prime) De exemplu,pentru n = 11 se va afisa (3,5);(5,7).
#include <iostream>
using namespace std;
int main()
{
int a,b,n,ok1,ok2,d1,d2;//am folosit variabilele ok1 si ok2 pt. a verifica daca numerele a si b sunt prime
for (a = 3;a < n;a++)
{
ok1 = 0;
for (d1 = 2;d1 <= a/2; d1++)
{
if (a % d1 == 0) ok1 = 1;
}
if (ok1 == 0)
{
b = a+2;
ok2 = 0;
for (d2 = 2;d2 <= b/2;d2++)
{
if (b % d2 == 0)ok2 = 1;
}
if (ok2 == 0)cout << "(" << a << "," << b << ")" << ";";
}
}
return 0;
}
Probabil pentru ca lipseste un: cin>>n; (sau daca vrei: cout<<"Introduceti numarul de la tastatura:"; cin>>n;)
Da,nu imi vine sa cred. Nu stiu cum de nu am observat acest lucru :)) Aveam impresia ca am scris cin >> n :))
Imi pare rau... Greseala mea
Citat din: Ayumi din Decembrie 20, 2011, 08:21:37 PM
Buna seara !
Imi puteti spune de de ce nu merge programul meu ? Trebuie sa afisez toate numerele prietene mai mici sau egale decat un numar n introdus de la tastatura. (2 numere sunt prietene daca diferenta dintre ele este de 2 si sunt amandoua numere prime) De exemplu,pentru n = 11 se va afisa (3,5);(5,7).
De unde e definitia asta? Numere prietene inseamna (si) cu totul altceva: fiecare numar este egal cu suma divizorilor celuilat. Prima pereche de numere prietene este 220, 284.
S-a schimbat sensul termenului intre timp? Sau poate e unul mai restrans.
Sau una din sutele de greşeli din manualele de informatică de la noi, n-ar fi prima ;).
Pentru numere mari e bine sa simplifici putin programul .Ciclul for poate sa mearga pana la partea intreaga a radacini patrate a numarului .
Citat din: mircea_p din Decembrie 20, 2011, 10:31:41 PM
Citat din: Ayumi din Decembrie 20, 2011, 08:21:37 PM
Buna seara !
Imi puteti spune de de ce nu merge programul meu ? Trebuie sa afisez toate numerele prietene mai mici sau egale decat un numar n introdus de la tastatura. (2 numere sunt prietene daca diferenta dintre ele este de 2 si sunt amandoua numere prime) De exemplu,pentru n = 11 se va afisa (3,5);(5,7).
De unde e definitia asta? Numere prietene inseamna (si) cu totul altceva: fiecare numar este egal cu suma divizorilor celuilat. Prima pereche de numere prietene este 220, 284.
S-a schimbat sensul termenului intre timp? Sau poate e unul mai restrans.
La scoala,ne-a pus sa rezolvam acest exercitiu.Profesoara a numit aceste numere prietene amiabile.Probabil ca nu si-a dat seama ca definitia nu este cea buna :)
ele se numesc numere prime pereche.Una din problemele parca nerezolvate e data de intrebarea daca exista cumva o infinitate de aceste numere prime pereche.