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

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.​


cristianchelm3: imi poti da un exemplu de tip input-output????
razvanbear: Pentru n=18 cele doua numere sunt 2618 si 139, iar suma lor 2637 nu este numar prim. 
cristianchelm3: ms
razvanbear: cpl

Răspunsuri la întrebare

Răspuns de cristianchelm3
1

#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;

}

Alte întrebări interesante