prime_factorization
C++
#include <iostream>
#include <map>
std::map<long long, long long> res;
long long t = 0;
void pf_mapA(long long N) {
for (long long i = 2; i*i <= N; i++) {
if (N%i != 0) continue;
long long cnt = 0;
while (N%i == 0) {
cnt++;
N /= i;
}
res[i] += cnt;
t++;
}
if (N != 1) res[N] = 1, t++;
}
int main() {
long long N;
std::cin >> N;
if (N == 1) {
std::cout << "1は素因数を持ちません\n";
return 0;
}
pf_mapA(N);
std::cout << N << " = ";
long long r = 0;
for (auto i : res) {
r++;
std::cout << i.first << '^' << i.second;
if (t > r) std::cout << " * ";
}
std::cout << '\n';
return 0;
}
CC0 1.0 Universal