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

Un număr natural nenul este prim, dacă are exact doi divizori (ex. 7).
Un număr natural nenul se va numi pătrat prim, dacă este pătratul unui număr prim (ex. 49 = 7 * 7).
Un număr natural nenul se va numi aproape prim, dacă este produsul a două numere prime distincte (ex. 10 = 2 * 5).
Un număr natural nenul ce nu se încadrează în niciuna din cazurile de mai sus, se numeşte compus (ex. 8=2*2*2, 100=2*2*5*5).
Se citeşte un număr natural n. Să se identifice din ce categorie de mai sus face parte.
pls in c++ fara vectori
dau coroana


marius7710: poti sa iti spun algoritmul ,iar tu sa scrii codul
marius7710: si eu sunt a 9
marius7710: ,aflii daca nr e prim impartind pana la jumatate sau cu un ciur ,daca da afisezi prim altfel ,,afli primul divizor al lui n ,dupa pui conditia daca primul divizor* primul divizor == numarul afisezi patrat prim altfel imparti nr la primul divizor si verifici daca rezultatul e nr prim altfel afisezi nr compus
marius7710: e simpla problema dar mult de lucru
marius7710: daca ti-as faceo ti-as faceo cu functii (daca stii )ca sa nu mai sciu atat de mult
marius7710: sper ca te-a ajuat
iboom3421: A ok ms

Răspunsuri la întrebare

Răspuns de andrei750238
0

#include <iostream>

using namespace std;

int main() {

int n, ndiv=0;

bool patrat = 0, aproapeprim = 0;

cout << "Introduceti n :";

cin >> n;

int div = 0;

for (int i = 1; i <= n / 2; i++) {

 if (n%i == 0) {

  ndiv++;

  div = i;

 }

 if (i*i==n)

  patrat = 1;

}

 

if (ndiv == 3) {

 aproapeprim = 1;

 int div2 = n / div;

 for (int j = 2; j <= div / 2; j++) {

  if (div%j == 0)

   aproapeprim = 0;

 }

 for (int j = 2; j <= div2 / 2; j++) {

  if (div2%j == 0)

   aproapeprim = 0;

 }

}

cout << endl;

if (ndiv == 1) cout << "Numarul e prim";

else if (patrat) cout << "Numarul e patrat perfect";

else if (aproapeprim == 1 ) cout << "Numarul e aproape prim";

else cout << "Numarul e compus";

return 0;

}

Anexe:

andrei750238: Poate ca nu este cel mai eficient program, dar functioneaza.
Fara vectori, fara functii.

Scris si testat in Visual Studio
andrei750238: Ai atasat documentul cpp in caz ca e prea greu sa urmaresti algoritmul pe site.
Alte întrebări interesante