Я пытаюсь написать код для моего класса. Программа должна позволить пользователю вводить число, и она будет выводить показатели каждого из основных факторов своего факториала. Например, когда пользователь вводит число 5, вывод будет 3 1 1 (2 ^ 3, 3 ^ 1, 5 ^ 1). Пока у меня есть код, чтобы получить основные факторы факториала. Но я не могу получить показатели.
Мой код ниже:
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int main()
{
int number, factor, exp, product, x, factorial=1;
cout <<"PRIME FACTORIALS" <<endl;
cout <<" " <<endl;
cout <<"Welcome! This program allows users to find the prime factors of a number and its exponents or how many times each prime factor is multiplied." <<endl;
cout <<" " <<endl;
cout <<"To begin, please input a positive integer below:" <<endl;
cin >>number;
if ((number<1) || (number>100))
{
cout <<"You have entered a number that is out of range. Please enter a number from 1-100." <<endl;
system("PAUSE");
system("cls");
main();
}
else
{
for (x=1; x<=number; x++)
{
factorial=factorial*x;
for (factor=2; factor<=factorial; factor++)
{
while (factorial%factor==0)
{
factorial/=factor;
cout <<factor <<" ";
}
}
}
}
}
Разве вы не должны закончить вычисление факториала, прежде чем разрабатывать его факторы? То есть иметь }
после factorial = factorial * x;
?