commit af80881b358c854c87c079b8729ee5ece042b355
parent b65c7e90e8a9657873a9c281e541449a609afbb8
Author: mpizzzle <m@michaelpercival.xyz>
Date: Mon, 21 Sep 2020 15:21:54 +0100
moving solutions that require bigint library into seperate folder (for now)
Diffstat:
14 files changed, 27 insertions(+), 49 deletions(-)
diff --git a/Euler.h b/Euler.h
@@ -17,7 +17,7 @@ public:
llui TriangleNoWithGreaterThan500Divisors();
std::string LargeSum();
llui CollatzConjecture();
- BigInteger LatticePaths();
+ //BigInteger LatticePaths();
int DigitSum();
int LetterCounter();
int MaximumPathSum();
@@ -45,19 +45,19 @@ public:
int ChampernowneConstant();
int PanDigitalPrime();
int CodedTriangleNumbers();
- BigInteger SubStringDivisibility();
+ //BigInteger SubStringDivisibility();
int MinimizedPentagonalDifference();
llui TriangularPentagonalHexagonal();
llui GoldbachsOtherConjecture();
int DistinctPrimeFactors();
- BigInteger SelfPowers();
+ //BigInteger SelfPowers();
std::string PrimePermutations();
int ConsecutivePrimeSum();
int PrimeDigitReplacements();
int PermutedMultiples();
int CombinatoricSelections();
int PokerHands();
- BigInteger LychrelNumbers();
+ //BigInteger LychrelNumbers();
int PowerfulDigitSum();
int SquareRootConvergents();
ll SpiralPrimes();
@@ -82,4 +82,4 @@ public:
llui CoinPartitions();
std::string PasscodeDerivation();
int SquareRootDigitalExpansion();
-};-
No newline at end of file
+};
diff --git a/EulerUtility.cpp b/EulerUtility.cpp
@@ -164,12 +164,12 @@ std::vector<int> EulerUtility::powerDigits(int n, int p)
return digits;
}
-BigInteger EulerUtility::bigFactorial(BigInteger n)
+/*BigInteger EulerUtility::bigFactorial(BigInteger n)
{
if (n == 0)
return 1;
return n * bigFactorial(n - 1);
-}
+}*/
int EulerUtility::factorial(int n)
{
@@ -178,10 +178,10 @@ int EulerUtility::factorial(int n)
return n * factorial(n - 1);
}
-BigInteger EulerUtility::choose(int n, int k)
+/*BigInteger EulerUtility::choose(int n, int k)
{
return EulerUtility::bigFactorial(n) / (EulerUtility::bigFactorial(k) * EulerUtility::bigFactorial(n - k));
-}
+}*/
bool EulerUtility::isPerfectSquare(llui n)
{
@@ -231,7 +231,7 @@ std::vector<int> EulerUtility::lluiToDigits(llui n)
return digitArray;
}
-std::vector<int> EulerUtility::BigIntToDigits(BigInteger n)
+/*std::vector<int> EulerUtility::BigIntToDigits(BigInteger n)
{
std::vector<int> digitArray;
@@ -244,7 +244,7 @@ std::vector<int> EulerUtility::BigIntToDigits(BigInteger n)
std::reverse(digitArray.begin(), digitArray.end());
return digitArray;
-}
+}*/
int EulerUtility::digitsToInteger(std::vector<int> d)
{
@@ -381,13 +381,13 @@ std::vector<std::string> EulerUtility::openWordFile(std::string filename)
return names;
}
-BigInteger EulerUtility::power(BigInteger i, int p)
+/*BigInteger EulerUtility::power(BigInteger i, int p)
{
if (p <= 0)
return 1;
return i * power(i, p - 1);
-}
+}*/
int EulerUtility::digitalRoot(int n)
{
@@ -400,7 +400,7 @@ int EulerUtility::digitalRoot(int n)
return digitSum;
}
-int EulerUtility::digitalRoot(BigInteger n)
+/*int EulerUtility::digitalRoot(BigInteger n)
{
std::vector<int> digits = BigIntToDigits(n);
int digitSum = std::accumulate(digits.begin(), digits.end(), 0);
@@ -409,7 +409,7 @@ int EulerUtility::digitalRoot(BigInteger n)
return digitalRoot(digitSum);
return digitSum;
-}
+}*/
std::vector<int> EulerUtility::intersect(std::vector<int>& a, std::vector<int>& b)
{
@@ -478,4 +478,4 @@ llui EulerUtility::phi(int n, std::vector<int> &primes, std::vector<int> &primes
int d = EulerUtility::gcd(m, o);
return (d == 1) ? EulerUtility::phi(m, primes, primesIndexed) * EulerUtility::phi(o, primes, primesIndexed) : EulerUtility::phi(m, primes, primesIndexed) * EulerUtility::phi(o, primes, primesIndexed) * d / EulerUtility::phi(d, primes, primesIndexed);
}
-}-
No newline at end of file
+}
diff --git a/EulerUtility.h b/EulerUtility.h
@@ -1,7 +1,7 @@
#include <string>
#include <vector>
-#include "BigIntegerLibrary.hh"
+//#include "BigIntegerLibrary.hh"
typedef long long unsigned int llui;
typedef long long int ll;
@@ -18,27 +18,27 @@ public:
static std::vector<int> factorialDigits(int n);
static std::vector<int> powerDigits(int n, int p);
static int factorial(int n);
- static BigInteger bigFactorial(BigInteger n);
- static BigInteger choose(int n, int k);
+ //static BigInteger bigFactorial(BigInteger n);
+ //static BigInteger choose(int n, int k);
static bool isPerfectSquare(llui n);
static bool isPerfectCube(llui n);
static std::vector<int> intToDigits(int n);
static std::vector<int> lluiToDigits(llui n);
- static std::vector<int> BigIntToDigits(BigInteger n);
+ //static std::vector<int> BigIntToDigits(BigInteger n);
static int digitsToInteger(std::vector<int> digits);
static llui digitsTollui(std::string s);
static bool hasUniqueDigits(int n, bool allowZero);
static bool isPrime(ll n, int iteration);
- static bool isPrime(BigInteger& n);
+ //static bool isPrime(BigInteger& n);
static bool isTriangle(int n);
static bool isPentagonal(llui n);
static std::vector<std::string> openWordFile(std::string filename);
- static BigInteger power(BigInteger i, int p);
+ //static BigInteger power(BigInteger i, int p);
static int digitalRoot(int n);
- static int digitalRoot(BigInteger n);
+ //static int digitalRoot(BigInteger n);
static std::vector<int> intersect(std::vector<int>& a, std::vector<int>& b);
static std::vector<int> getFigurates(int sides, int floor, int ceiling);
static llui gcd(llui a, llui b);
static llui binary_gcd(llui a, llui b);
static llui phi(int n, std::vector<int> &primes, std::vector<int> &primesIndexed);
-};-
No newline at end of file
+};
diff --git a/Makefile b/Makefile
@@ -15,30 +15,11 @@ euler-headers =
EulerUtility.h
Euler.h
-bigint-objects =
- BigUnsigned.o
- BigInteger.o
- BigIntegerAlgorithms.o
- BigUnsignedInABase.o
- BigIntegerUtils.o
+$(euler-objects): $(euler-headers)
-bigint-headers =
- NumberlikeArray.hh
- BigUnsigned.hh
- BigInteger.hh
- BigIntegerAlgorithms.hh
- BigUnsignedInABase.hh
- BigIntegerLibrary.hh
-
-bigint: $(bigint-objects)
-
-$(bigint-objects): $(bigint-headers)
-
-$(euler-objects): $(euler-headers) $(bigint-headers)
-
-$(program) : $(euler-objects) $(bigint-objects)
+$(program) : $(euler-objects)
g++ $^ -o $@
-clean : rm -f $(bigint-objects) $(program-objects) $(program)
+clean : rm -f $(program-objects) $(program)
all: make $(program)
diff --git a/Euler_15.cpp b/bigint/Euler_15.cpp
diff --git a/Euler_26.cpp b/bigint/Euler_26.cpp
diff --git a/Euler_43.cpp b/bigint/Euler_43.cpp
diff --git a/Euler_48.cpp b/bigint/Euler_48.cpp
diff --git a/Euler_55.cpp b/bigint/Euler_55.cpp
diff --git a/Euler_57.cpp b/bigint/Euler_57.cpp
diff --git a/Euler_63.cpp b/bigint/Euler_63.cpp
diff --git a/Euler_65.cpp b/bigint/Euler_65.cpp
diff --git a/Euler_66.cpp b/bigint/Euler_66.cpp
diff --git a/Euler_78.cpp b/bigint/Euler_78.cpp