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

C++ или Си: Представить натуральное число N в виде произведения простых сомножителей.
Гость
Ответ(ы) на вопрос:
Гость
#include #include #include 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 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
Гость
#include #include 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы