Informatică, întrebare adresată de raressportiv0, 9 ani în urmă

Creaţi fişierul atestat.out care să conţină pe prima linie, separate printr-un spaţiu, toate numerele de trei cifre care sunt numere prime.
C++, in int main() Va rog si explicat ...

Răspunsuri la întrebare

Răspuns de Mister7
2
#include <iostream>
#include <fstream> (de fiecare data cand e vorba de fisiere pune  biblioteca asta)

using namespace std;

int main()
{
    int i, j, prim;
    ofstream f_out("atestat.out"); (declari fisierul de iesire)
    for(i=100;i<=999;i++) (iei toate numerele de 3 cifre)
    {
        prim=1;
        for(j=2;j<i;j++) (daca se imparte la oricare numar inafara de 1 si el, nu e prim)
        {
            if(i%j==0) prim=0;
        }
        if(prim) f_out << i << " "; (daca e prim il scrie)
    }
    return 0;
}

Mister7: Acum editez si iti scriu si explicatiile, oricum ma poti intreba pe unde nu intelegi
raressportiv0: Pentru ce e j acolo de la 2 ? joaca rol de divizor ?
raressportiv0: si i%j==0 nu am inteles
Mister7: Da, j-ul joaca rol de divizor. Iar i%j==0, inseamna ca restul impartirii lui i la j e 0, altfel spus se imparte, deci nu ar mai fi prim. E conditia care verifica practic daca se imparte la orice numar
raressportiv0: Aaa ,am inteles care e faza cu i%j , noi la scoala in loc de j , scriam d
raressportiv0: int i,d,ok;
ofstream fout("atestat.out");
for(i=100;i<=999;i++)
{
ok=1;d=2;
while(d<=i/2 && ok==1)
{
if(i%d==0)
{
ok=0;
}
else
{
d++;
}
}
if(ok==1)
{
cout<<i<<" ";
}
}
raressportiv0: Merge si in varianta asta
Alte întrebări interesante