project-euler

https://projecteuler.net/
Log | Files | Refs | README

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:
MEuler.h | 11+++++------
MEulerUtility.cpp | 23+++++++++++------------
MEulerUtility.h | 17++++++++---------
MMakefile | 25+++----------------------
REuler_15.cpp -> bigint/Euler_15.cpp | 0
REuler_26.cpp -> bigint/Euler_26.cpp | 0
REuler_43.cpp -> bigint/Euler_43.cpp | 0
REuler_48.cpp -> bigint/Euler_48.cpp | 0
REuler_55.cpp -> bigint/Euler_55.cpp | 0
REuler_57.cpp -> bigint/Euler_57.cpp | 0
REuler_63.cpp -> bigint/Euler_63.cpp | 0
REuler_65.cpp -> bigint/Euler_65.cpp | 0
REuler_66.cpp -> bigint/Euler_66.cpp | 0
REuler_78.cpp -> bigint/Euler_78.cpp | 0
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