Un număr natural se numește aproape prim dacă poate fi scris ca produs de două numere naturale prime distincte.
Cerinţa
Se citește un număr natural. Să se verifice dacă este aproape prim.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran cuvântul DA, dacă n este aproape prim, respectiv NU în caz contrar.
Restricţii şi precizări
1 ≤ n ≤ 1.000.000.000
Exemplu 1:
Intrare
35
Ieșire
DA
Exemplu 2:
Intrare
50
Ieșire
NU
C++
fara vectori pls
Dennis1239:
Acuma ma apuc. In jur de 30 de minute poti sa revii
Răspunsuri la întrebare
Răspuns de
22
Un numar aproape prim are doar 4 divizori. Si cuburile perfecte au tot 4 divizori. Daca verificam ca un numar are 4 div si nu e cub perfect e aproape prim. Pe pbinfo nu merge partea cu cub perfect...dar iei 100p cu sursa asta . Succes!
#include <bits/stdc++.h>
using namespace std;
long long n, d, k;
int main()
{
cin >> n;
for(d = 1; d * d < n; d++)
{
if(n % d == 0) k ++;
if(n % (n / d) == 0) k ++;
}
if(d * d == n) k ++;
// if (cbrt(n) * cbrt(n) * cbrt(n) == n) {cout << "NU"; return 0;}
if(k != 4) cout << "NU";
else cout << "DA";
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long n, d, k;
int main()
{
cin >> n;
for(d = 1; d * d < n; d++)
{
if(n % d == 0) k ++;
if(n % (n / d) == 0) k ++;
}
if(d * d == n) k ++;
// if (cbrt(n) * cbrt(n) * cbrt(n) == n) {cout << "NU"; return 0;}
if(k != 4) cout << "NU";
else cout << "DA";
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă