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
c++ va rog
Răspunsuri la întrebare
Răspuns de
1
#include<iostream>
#include <math.h>
using namespace std;
bool CheckPrime(int Nr);
int main(){
bool IsAlmostPrime=false;
int n;
cin>>n;
for(int x=2;x<sqrt((double)n);x++){
if(n%x==0 && CheckPrime(x) && CheckPrime(n/x)){
IsAlmostPrime=true;
}
}
cout<< (IsAlmostPrime?"Da":"Nu");
system("pause");
return 0;
}
bool CheckPrime(int Nr){
bool IsPrime=true;
if(Nr!=2){
if(Nr%2!=0){
for(int x=3;x<=sqrt((double)Nr);x+=2){
if(Nr%x==0) IsPrime=false;
}
return IsPrime;
}else{
return false;
}
}else{
return true;
}
}
#include <math.h>
using namespace std;
bool CheckPrime(int Nr);
int main(){
bool IsAlmostPrime=false;
int n;
cin>>n;
for(int x=2;x<sqrt((double)n);x++){
if(n%x==0 && CheckPrime(x) && CheckPrime(n/x)){
IsAlmostPrime=true;
}
}
cout<< (IsAlmostPrime?"Da":"Nu");
system("pause");
return 0;
}
bool CheckPrime(int Nr){
bool IsPrime=true;
if(Nr!=2){
if(Nr%2!=0){
for(int x=3;x<=sqrt((double)Nr);x+=2){
if(Nr%x==0) IsPrime=false;
}
return IsPrime;
}else{
return false;
}
}else{
return true;
}
}
Alte întrebări interesante
Chimie,
8 ani în urmă
Istorie,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă