Steppable 0.0.1
A CAS project written from scratch in C++
Loading...
Searching...
No Matches
factors.hpp
1/**************************************************************************************************
2 * Copyright (c) 2023-2025 NWSOFT *
3 * *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy *
5 * of this software and associated documentation files (the "Software"), to deal *
6 * in the Software without restriction, including without limitation the rights *
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *
8 * copies of the Software, and to permit persons to whom the Software is *
9 * furnished to do so, subject to the following conditions: *
10 * *
11 * The above copyright notice and this permission notice shall be included in all *
12 * copies or substantial portions of the Software. *
13 * *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *
20 * SOFTWARE. *
21 **************************************************************************************************/
22
23#pragma once
24
25#include "types/result.hpp"
26
27#include <string>
28#include <vector>
29
30using namespace steppable::types;
31
33{
40 std::vector<std::string> getFactors(const std::string& _number);
41
49 ResultBool<std::string> getRootFactor(const std::string& _number, const std::string& base = "2");
50
58 std::string getGreatestRootNum(const std::string& _number, const std::string& base = "2");
59
66 bool isPrime(const std::string& _number);
67
76 ResultBool<std::string> isRoot(const std::string& _number, const std::string& base);
77} // namespace steppable::__internals::numUtils
Utilities to operate numbers.
Definition factors.cpp:35
bool isPrime(const std::string &_number)
Check if a number is prime.
Definition factors.cpp:81
std::vector< std::string > getFactors(const std::string &_number)
Get the factors of a number.
Definition factors.cpp:36
ResultBool< std::string > isRoot(const std::string &_number, const std::string &base)
Check if a number is a root number.
Definition factors.cpp:87
ResultBool< std::string > getRootFactor(const std::string &_number, const std::string &base)
Get the largest factor of a number, that is a root number.
Definition factors.cpp:57
std::string getGreatestRootNum(const std::string &_number, const std::string &base)
Get the greatest root number less than or equal to the given number.
Definition factors.cpp:75
The namespace containing types used in the steppable calculator.
ResultBase< StatusBool, ResultT, StringLiteral{ "bool" }> ResultBool
An alias for a result of a boolean calculation.
Definition result.hpp:130
Untitled