restruct folders and base approach

This commit is contained in:
2025-03-15 12:59:23 +03:00
parent 9457d21c1e
commit 186397f52e
13 changed files with 125 additions and 76 deletions

View File

@@ -0,0 +1,59 @@
#pragma once
#include <vector>
#include <math.h>
// Находит все простые множители заданного числа.
// Простое число - это число > 1, которое делится на 1 и на само себя.
namespace alg
{
inline std::vector<int> prime_factors_v1(int a)
{
std::vector<int> result;
int i = 2;
while (i < a)
{
while (a%i == 0)
{
result.push_back(i);
a /= i;
}
++i;
}
if (a > 1) result.push_back(a);
return result;
}
inline std::vector<int> prime_factors_v2(int a)
{
std::vector<int> result;
while(a%2 == 0)
{
result.push_back(2);
a = a/2;
}
int i = 3;
int max_faxtor = std::sqrt(a);
while (i <= max_faxtor)
{
while (a%i == 0)
{
result.push_back(i);
a /= i;
max_faxtor = std::sqrt(a);
}
i += 2;
}
if (a > 1) result.push_back(a);
return result;
}
}