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

Ответы 7

  • Постараюсь
    • Автор:

      cisneros
    • 5 лет назад
    • 0
  • Если не сложно - подпишись на меня - помогать и дальше буду
    • Автор:

      cindy
    • 5 лет назад
    • 0
  • Ибо я так учусь)
  • + я не сильно тебя растрою, если скажу, что это и есть с++
  • Зачем накапливать в векторе, если можно сразу выводить в выходной поток ?
    • Автор:

      kyla
    • 5 лет назад
    • 0
  • #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;}
    • Автор:

      belch
    • 5 лет назад
    • 0
  • #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 << "";    if (prost(n)) {    cout << "1 * " << 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 << "";    } return 0;}Пример:n = 27202*2*2*2*2*5*17=2720
    • Автор:

      buck79
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years