#include
#include
#include
std::vector prime_numbers;
void set_prime_numbers() {
prime_numbers.reserve(110)
prime_numbers.push_back(2);
prime_numbers.push_back(3);
for (int i = 1; i < 102; i++) {
prime_numbers.push_back(6 * i - 1);
prime_numbers.push_back(6 * i + 1);
}
}
long long fact(int n) {
long long result = 1;
for (int i = n; i > 0; i--) {
result = result * i;
}
return result;
}
std::string decomp(long long n) {
set_prime_numbers();
n = fact;
std::string result;
int d = 1;
for (int elem = 0; {
if (n == 1){
result += std::to_string(prime_numbers[elem]);
break;
}
if (n % prime_numbers[elem] == 0) {
n = n / prime_numbers[elem];
d++;
}
if (n % prime_numbers[elem] != 0) {
result += std::to_string(prime_numbers[elem]) + ((d==1)?"":"^" + std::to_string(d)) + " * ";
++elem;
n = n / prime_numbers[elem];
d = 1;
}
}
return result;
}
#include
#include
std::vector prime_numbers;
void set_prime_numbers() {
prime_numbers.reserve(110)
prime_numbers.push_back(2);
prime_numbers.push_back(3);
for (int i = 1; i < 102; i++) {
prime_numbers.push_back(6 * i - 1);
prime_numbers.push_back(6 * i + 1);
}
}
long long fact(int n) {
long long result = 1;
for (int i = n; i > 0; i--) {
result = result * i;
}
return result;
}
std::string decomp(long long n) {
set_prime_numbers();
n = fact;
std::string result;
int d = 1;
for (int elem = 0; {
if (n == 1){
result += std::to_string(prime_numbers[elem]);
break;
}
if (n % prime_numbers[elem] == 0) {
n = n / prime_numbers[elem];
d++;
}
if (n % prime_numbers[elem] != 0) {
result += std::to_string(prime_numbers[elem]) + ((d==1)?"":"^" + std::to_string(d)) + " * ";
++elem;
n = n / prime_numbers[elem];
d = 1;
}
}
return result;
}