выведите главный фактор целых чисел в степенной форме (^)

Мне нужна программа на C ++ или C, которая будет вычислять простой множитель. Например, вы вводите 135 Я хочу, чтобы результат был таким (3 ^ 3) (5 ^ 1) вместо 3,3,3,5.

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
void get_divisors(int n);
int main()
{
int n = 0;
cout << "Enter a number:";
cin >> n;
get_divisors(n);
cout << endl;
}
void get_divisors(int n)
{
int i;
double sqrt_of_n = sqrt(n);
for (i = 2; i <= sqrt_of_n; i++)
if (n % i == 0)
{
cout << i << ", ";
get_divisors(n / i);
return;
}
cout << n;
}

-4

Решение

использование std::map<int, int> содержать простое число (первое целое число) и количество вхождений этого простого числа (второе целое число).

Поэтому, когда у вас есть простое число, найдите значение на карте, а если его нет на карте, вставьте его.

Если простое число уже существует, увеличить счетчик.

При печати вы перебираете карту, печатая простое число, затем символ «^», а затем количество простых чисел.

Детали оставлены в качестве упражнения для читателя.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector