👤

Salut,cum pot rezolva aceasta problema?? Nu vreau sa faceti cu citire de fisier,vreau sa introduc eu in consola si sa se afiseze tot acolo raspunsul

Suma si numarul divizorilor
Divizorii unui număr natural n reprezintă mulţimea de numere naturale, mai mici sau egale cu n, cu proprietatea că divid pe n. Să se determine pentru t numere naturale cardinalul acestei mulţimi şi restul împărţirii sumei elementelor mulţimii la 9973.

Date de intrare
Fişierul de intrare ssnd.in conţine pe prima linie un număr natural t. Pe următoarele t linii se va afla câte un număr natural n.

Date de ieşire
În fişierul de ieşire ssnd.out se vor afla t linii, fiecare linie conţinând câte două numere naturale, reprezentând răspunsurile pentru fiecare din cele t întrebări.

Exemplu
ssnd.in ssnd.out
3
8
12
13
4 15
6 28
2 14

Explicaţie
Divizorii lui 8 sunt 1, 2, 4, 8, iar suma lor este 1+2+4+8 = 15.
Divizorii lui 12 sunt 1, 2, 3, 4, 6, 12, iar suma lor este 1+2+3+4+6+12 = 28.
13 este număr prim, prin urmare are doar 2 divizori, pe 1 şi pe el însuşi, iar suma lor este 14.


Răspuns :

#include <iostream>

using namespace std;

int main() {

int t;

cout << "Introduceti t :";

cin >> t;

for (int i = 1; i <= t; i++) {

 //Citire numar :

 long nr;

 cout << "\n\n Introduceti numarul :";

 cin >> nr;

 //Gasire divizori numere

 int cardinal = 0;

 int suma = 0;

 for (int j = 1; j <= nr; j++) {

  if (nr % j == 0) {

   //Adaugam divizorul la suma :

   suma = suma + j;

   // Adaugam 1 la cardinal :

   cardinal++;

  }

 }

 //Afisare suma, rest impartire la 9973 a sumei si cardinalul pentru fiecare numar citit :

 cout << "\nSuma : " << suma << "\nRest imartire la 9973 : " << suma % 9973 << "\nCardinal :" << cardinal;

}

return 0;

}

Vezi imaginea Andrei750238