mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-04-25 19:12:52 +08:00
fixed error and added a UI
If used prime numbers it occurred an error. This error is fixed. And I added a UI.
This commit is contained in:
@@ -34,33 +34,34 @@ void SieveOfEratosthenes(int N)
|
|||||||
void prime_factorization(int num)
|
void prime_factorization(int num)
|
||||||
{
|
{
|
||||||
|
|
||||||
vector<int>::iterator it;
|
int number = num;
|
||||||
|
|
||||||
// make sure num is not a prime number
|
for(int i=0; prime_numbers[i]<=num; i++)
|
||||||
it = find (prime_numbers.begin(), prime_numbers.end(), num);
|
|
||||||
if (it == prime_numbers.end())
|
|
||||||
{
|
{
|
||||||
for(int i=0; prime_numbers[i]<=num; i++)
|
int count=0;
|
||||||
|
|
||||||
|
// termination condition
|
||||||
|
if (number == 1)
|
||||||
{
|
{
|
||||||
int count=0;
|
break;
|
||||||
|
|
||||||
while(num%prime_numbers[i] == 0)
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
num = num/prime_numbers[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if(count)
|
|
||||||
factors.push_back(make_pair(prime_numbers[i],count));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(number%prime_numbers[i] == 0)
|
||||||
|
{
|
||||||
|
count++;
|
||||||
|
number = number/prime_numbers[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count)
|
||||||
|
factors.push_back(make_pair(prime_numbers[i],count));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
factors.push_back(make_pair(num,1));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
I added a simple UI.
|
||||||
|
*/
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
int num;
|
int num;
|
||||||
|
|||||||
Reference in New Issue
Block a user