Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите написать на с++

Леонид Агутин Ученик (79), открыт 2 недели назад
Задача №112254. Простые делители
Напишите программу, которая выполняет разложение натурального числа на простые сомножители (возможно, кратные).



Входные данные

Входная строка содержит натуральное число N .



Выходные данные

Программа должна вывести в одной строке все простые сомножители числа N , разделив их пробелами.
2 ответа
Елисей Горбунов Знаток (372) 2 недели назад
#include <iostream>
using namespace std;

int main() {
int N;
cin >> N; // Вводим число N

// Перебираем возможные делители, начиная с 2
for (int i = 2; i * i <= N; ++i) {
// Пока N делится на i, выводим i и делим N на i
while (N % i == 0) {
cout << i << " ";
N /= i;
}
}

// Если после цикла N > 1, то N само является простым числом
if (N > 1) {
cout << N;
}

cout << endl; // Переход на новую строку
return 0;
}
Николай Веселуха Высший разум (377956) 2 недели назад
 #include <iostream> 
using namespace std;
int main() {
unsigned n;
cin >> n;
auto m = n >> 1U;
for (auto i = 1U; i <= m; ++i) {
if (0U == n % i) {
cout << i << ' ';
}
}
cout << n << '\n';
}
Похожие вопросы