Другие языки программирования и технологии

Задание по программированию.

Написать на С++ программу получения в порядке убывания всех делителей данного числа. Очень прошу написать эту программу и кинуть в ответах и поподробнее описать если не сложно. Число можно выбрать любое. Буду очень благодарен!)
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main(int argc, _TCHAR* argv[])
{
 setlocale(LC_ALL, "Russian");
 srand(time(NULL));
 int a = rand() % INT_MAX;
 cout << "Делители числа " << a << endl;
 for (int i = a; i > 0; i--){
  if ((a%i) == 0){
   cout << i << " ";
  }
 }
 cin;
 return 0;
}
АБ
Анатолий Борисович
72 753
Лучший ответ
int n;

cin <<n <<; //посмотри синтаксис
for (int k = n >>1; k<=1; k--) if (n%k==0) cout >>k >>; //или как там этот cout правильно пишется.. . Тебе виднее в общем.
Олег Ковалев
Олег Ковалев
87 818
#include <iostream>
using namespace std;
int main(){
int n; cout<<"n: "; cin>>n;
for(int i=n;i;i--)if(n%i==0)cout<<i<<endl;
cin.get(); cin.get();}

Описывать нечего, элементарно, Ватсон...
Роман Дектярев
Роман Дектярев
50 675
В общем, написал скромненько. Дополнил комментариями. Прошу.
truth.pp.ua/test.cpp

paperrose, не работал с таким еще.
Решение сверху и снизу работает за время O(n) и упадет на числе 10^9, у меня есть за O(корень из n) и с комментариями.
Если нужно напишите на почту и я его отправлю.
Роман Чернов
Роман Чернов
10 928
#include <iostream>

using namespace std;

int main()
{
int x; // объявляем целочисленную переменную

cout << "Enter number: "; // предлагаем ввести число
cin >> x; // вводим число

for(int i(x); i != 0; i--) // создаём цикл и проверяем условие
if(x % i == 0) // если заданное число х делится без остатка, на любое другое число то. .
cout << i << endl; // .. выводим его делители на экран)

system("pause >> void");
return 0;
}
#include <iostream>
using namespace std;
void main() {
unsigned long n;
cout<<"n: ";
cout << n << endl;
for(unsigned long i=(unsigned long)sqrt(n); i > 1; i--)
if (n%i==0)
cout<<i<<endl;
cout << 1 << endl;
}

Серый Мудрец , а почему vector не использовали? уж лучше по-моему, чем массив с проверкой два раза прогонять

ну тогда как вариант можно было бы еще выделить массив размера sqrt(n), завести счетчик и сразу заполнять его

а потом после цикла realloc, если надо
Sanek Barkov
Sanek Barkov
4 543