Ştiri:

Vă rugăm să citiţi Regulamentul de utilizare a forumului Scientia în secţiunea intitulată "Regulamentul de utilizare a forumului. CITEŞTE-L!".

Main Menu

numere prietene

Creat de Ayumi, Decembrie 20, 2011, 08:21:37 PM

« precedentul - următorul »

0 Membri şi 1 Vizitator vizualizează acest subiect.

Ayumi

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;
}

andrei.92

#1
Probabil pentru ca lipseste un: cin>>n; (sau daca vrei: cout<<"Introduceti numarul de la tastatura:"; cin>>n;)                                                                                     

Ayumi

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

mircea_p

#3
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.

AlexandruLazar

Sau una din sutele de greşeli din manualele de informatică de la noi, n-ar fi prima ;).


zec

Pentru numere mari e bine sa simplifici putin programul .Ciclul for poate sa mearga pana la partea intreaga a radacini patrate a numarului .

Ayumi

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 :)

zec

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.