Выходные мощности простых множителей факториала

Я пытаюсь написать код для своего класса. Программа должна позволить пользователю ввести число, и она выведет показатели степени каждого из простых множителей своего факториала. Например, когда пользователь вводит число 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 <<" ";
            }
        }
    }
}
}

person Jean    schedule 13.09.2014    source источник
comment
Да, я исправил это. Любая идея, как я могу вывести показатели основных множителей?   -  person Jean    schedule 13.09.2014
comment
Подсчитайте, сколько раз деление оказалось удачным для каждого фактора. (Хотя сейчас вы пробуете все возможные множители, а не только простые множители.)   -  person Alan Stokes    schedule 13.09.2014
comment
ср. stackoverflow.com/questions/21196814/   -  person Will Ness    schedule 18.02.2016


Ответы (1)


Разве вы не должны закончить вычисление факториала перед вычислением его множителей? т.е. есть } после factorial = factorial * x;?

person Alan Stokes    schedule 13.09.2014