Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Afisati numerele de la 1 la n care sunt prime.
Va rog folositi while,nu for ....


1Viserys: c++?

Răspunsuri la întrebare

Răspuns de 1Viserys
0

#include <iostream>

using namespace std;

int main()

{

int n, i=2, ok=0, div, j;

cin>>n;

while (i<=n)

{

div=0;

j=2;

while (j<i) {

if(i%j==0)

           div=1;

j++; }

if (div==0)

{

cout<<i<<" ";

ok=1;

}

i++;

}

if (ok==0) cout<<"Nu exista numere prime in intervalul [1, "<<n;

//^doar daca n=1

return 0;

}


1Viserys: am uitat ca nu vrei for, alternativa este
1Viserys: j=2
1Viserys: while(j
1Viserys: am rezolvat
1Viserys: j este o variabila de parcurgere, practic ia fiecare numar dintre 1 si i si verifica daca il divide pe i, adica daca exista divizori proprii
1Viserys: si div e variabila care imi spune daca am sau nu astfel de divizori. ea la inceput este 0 si se modifica doar daca gasesc divizor propriu. deci, dupa ce termin parcurgerea, daca div a ramas 0 inseamna ca nu a gasit divizori, deci e prim
1Viserys: altfel, inseamna ca s-a gasit macar un divizor deci nu e prim
Alte întrebări interesante