Demonstration
Enter n: 1234567890
2
3^2
5
3607
3803
Source Code
#include <iostream>
long long n;
void primeCalculator() {
int expo = 0;
// Even Prime
while (n % 2 == 0) {
n /= 2;
expo++;
}
if (expo > 1) {
std::cout << "2^" << expo << std::endl;
} else if (expo == 1) {
std::cout << "2\n";
}
// Odd Prime < Square Root of "n"
for (long long i = 3; i*i <= n; i += 2) {
expo = 0;
while (n % i == 0) {
n /= i;
expo++;
}
if (expo > 1) {
std::cout << i << "^" << expo << std::endl;
} else if (expo == 1) {
std::cout << i << std::endl;
}
}
// Last Prime
if (n > 1) {
std::cout << n << std::endl;
}
}
int main() {
std::cout << "Enter n: ";
std::cin >> n;
std::cout << std::endl;
primeCalculator();
return 0;
}