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

Se citește un număr natural n (n<10 la puterea 6 ). Scrie un program C++ care afișează toți divizorii săi naturali în ordine crescătoare. Exemplu Se citește: 12 Se afișează: 1 2 3 4 6 12
(daca se poate prin while si o metoda cat mai usor de inteles pt ca sunt incepatoare)

Răspunsuri la întrebare

Răspuns de Apollyon
2

Răspuns:

#include <iostream>

using std::cout;

using std::endl;

using std::cin;

int main() {

int numarulCitit;

// vom citi numărul căruia vrem să-i afișăm divizorii

cout << "Introdu numarul (de ex. 12) >> "; cin >> numarulCitit;

/* eu zic că e mai ușor de vizualizat cu un for, același lucru se poate face și cu un while, ideea e că pornim cu i de la 1, la fiecare iterație a for-ului vom verifica dacă numărul nostru se împarte la i (dacă restul împărțirii numărului la i este 0), dacă se împarte înseamnă că i este un divizor al numărului nostru

 de ex restul împărțirii lui 12 la 1 este 0 deci 1 este divizor al lui 12, restul împărțirii lui 12 la 2 este 0 deci 2 este divizor al lui 12, restul împărțirii lui 12 la 5 nu este 0 deci 5 nu este un divizor al lui 12 ș.a.m.d.*/

for (int i = 1; i <= numarulCitit; ++i)

 if (numarulCitit % i == 0)

  cout << i << " ";

/*Mai jos ți-am pus și varianta cu while

int j = 1;

while (j <= numarulCitit) {

 if (numarulCitit % j == 0)

  cout << j << " ";

 ++j;

}*/

return 0;

}


manfbb: Poți să răspunzi și la întrebarea mea te rog mult
Apollyon: M-am uitat peste, e cam complicată, ideea e că poți lua efectiv codul pentru merge sort de pe internet dar trebuie să te gândești cum să-l adaptezi pentru a sorta doar perimetrul matricii și nu toată matricea.
manfbb: De asta și întreb că nu știu cum să-l adaptez ca să sorteze doar perimetrul
Apollyon: Linia de sus și de jos e ușor de sortat, restul liniilor îs complicate că trebuie să-i iei doar capeții ))
Apollyon: Ai putea efectiv să-ți faci 2 tablouri separate cu elementele coloanelor exterioare, le sortezi și după să le bagi în matrice.
Alte întrebări interesante