Sa se rezolve in C++ va rog. Scrieti un program care citeste un numar natural n si care determina daca suma dintre numarul format cu divizorii pari si numarul format cu divizorii impari ale lui n este numar prim. Programul afiseaza DA sau NU.
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int divPari = 0, divImp = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
if (i % 2 == 0) {
if (i < 10) {
divPari = divPari * 10 + i;
}
else if (i < 100) {
divPari = divPari * 100 + i;
}
else if (i < 1000) {
divPari = divPari * 1000 + i;
}
else if (i < 10000) {
divPari = divPari * 10000 + i;
}
else if (i < 100000) {
divPari = divPari * 100000 + i;
}
else if (i < 1000000) {
divPari = divPari * 1000000 + i;
}
}
}
if (n % i == 1) {
if (i % 2 == 0) {
if (i < 10) {
divImp = divImp * 10 + i;
}
else if (i < 100) {
divImp = divImp * 100 + i;
}
else if (i < 1000) {
divImp = divImp * 1000 + i;
}
else if (i < 10000) {
divImp = divImp * 10000 + i;
}
else if (i < 100000) {
divImp = divImp * 100000 + i;
}
else if (i < 1000000) {
divImp = divImp * 1000000 + i;
}
}
}
}
n = divPari + divImp;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
cout << "NU";
return 0;
}
}
cout << "DA";
return 0;
}