E corecta problema asta facuta cu structura do-while? Daca nu, cum e corect?
Să se scrie un program care citește un număr natural n (n>1) și apoi să se afișeze toți divizorii, în ordine crescătoare, separați prin spațiu. (cu do-while!!)

#include <iostream>
using namespace std;
int main()
{
int n, d;
cout<<"Dați numarul: ";
cin>>n;
do
{
for (d=1; i<=n; d++)
if (n%d==0)
cout<<d<<' ';
}
while (d<=n);
return 0;
}​

Răspuns :

Răspuns:

Salut! Aici ai rezolvarea corecta:

#include <iostream>  

using namespace std;  

int main()

{

   int n,d;

   d=1;

   cout<<"N="; cin>>n;

   do {

           if(n%d==0)

               cout << d << " ";

           d++;

   }

   while (d<=n);

   return 0;

}

Explicație:

Ce este diferit este faptul ca nu am mai folosit instuctiunea for in interiorul while-ului, deoarece nu este nevoie de ea. Ne folosim de un contor numit d pe care il verificam de fiecare data daca N se imparte exact la acesta, caz in care afisam acest d, dupa care marim contorul pana cand va fi egal cu n(conditia while-ului)