В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
ezdar04
ezdar04
31.03.2023 03:02 •  Информатика

C++ или си: представить натуральное число n в виде произведения простых сомножителей.

Ответ:
Кейл
Кейл
31.08.2020 13:53
#include <iostream>
#include <cmath>
using namespace std;
bool prost(int m){
int k = 0;
for (int i=2; i<=sqrt(m); i++)
if (m % i == 0) k++;
return k==0;
}

int main(){
    int n, r;
    int i = 1;
    cout << "n = ", cin >> n, cout << "\n";
    if (prost(n)) {
    cout << "1 * " << n << " = " << n << "\n";}
    else {
    r = n;
    while (r != 1){
    i++;
    if (prost(i)){
    while (r % i == 0){
    r = r / i;
    cout << i;
    if (r != 1) cout << "*";
    }
  }
  }
  cout << "=" << n << "\n";
    }
return 0;
}

Пример:
n = 2720
2*2*2*2*2*5*17=2720
0,0(0 оценок)
Ответ:
arianaforever1
arianaforever1
31.08.2020 13:53
#include <iostream>#include <cstdlib>#include <vector>bool fPrime(int n){ for (int i = 2; i <= n / 2; i++) if (n%i == 0) return false; return true;}int main(){ int num, n, i, copy; std::vector<int> PrimDiv; std::cin >> num; copy = num; for (n = 2; n <= num / 2 && num != 0; n++) if (fPrime(n) == true) while (copy%n == 0) { PrimDiv.push_back(n); copy /= n; } std::cout << num << "="; if (PrimDiv.empty()) std::cout << num; else { for (i = 0; i<PrimDiv.size() - 1; i++) std::cout << PrimDiv[i] << "*"; std::cout << PrimDiv[PrimDiv.size() - 1]; } system("pause"); return 0;}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?