Informatică, întrebare adresată de greeneyes27, 8 ani în urmă

Care este algoritmul pentru a afla un numar prin citit de la tastatura. Daca se poate vreau si cu o explicatie mai amanuntita ca sa pot intelege logic.

Răspunsuri la întrebare

Răspuns de lucaciucandrei
2

un numar e prim daca are ca divizori doar pe 1 si pe el insusi
ex: 5 e prim ca nu se imparte nici cu 2 nici cu 3 nici cu 4 doar cu 1 si 5

exceptie fac numerele 0 si 1, ele nu se considera prime

2 e numar prim de la sine care doar 2 divizor (se observa logic)
3 la fel

ai si formula pt nr prime care este 6*n + 1 sau 6*n - 1 cu n numar natural de la 1 pana la infinit

bun, avand astea in minte:

ai o variabila "div" care e initializata cu 0

asta denota ca numarul tau "n" are 0 divizori, asa presupunem la inceput

apoi faci o parcurge prin divizorii numarului

adica for (int i = 1; i <= n; i++)

asta inseamna ca iei toate numerele de la 1 la n si verifici apoi daca n%i==0 adica daca i e divizor al lui n, daca n se imparte exact la i prin instructiunea asta de am scris-o eu si daca e adevarata atunci incrementezi variabila div cu 1 (div++) daca nu e adevarata se merge mai departe

la final, dupa ce s-au parcurs toate numerele, verifici daca div==2 adica daca numarul de divizori al numarului n este 2 (adica doar 1 si el insusi); daca asta e adevarat inseamna ca numarul e prim, altfel nu e


program c++:

#include<iostream>
using namespace std;
int main(){
   int div = 0, n;
   cin >> n; //citim numarul de la tastatura
   for (int i = 1; i <= n; i++)
       if (n%i == 0)
           div++;
   if (div==2)
       cout<<"numarul este prim";
   else
       cout<<"nu este prim";
}

Alte întrebări interesante