diff --git a/cpp/add_digit_anywhere_primes/Makefile b/cpp/add_digit_anywhere_primes/Makefile new file mode 100644 index 0000000..4e03de0 --- /dev/null +++ b/cpp/add_digit_anywhere_primes/Makefile @@ -0,0 +1,23 @@ +# rename `template` to name of project +TARGET=add_digit_anywhere_primes +CXX=g++ +OFILES=../common/tree.o ../common/util.o +LIBS= +CXXFLAGS=-g + +$(TARGET): $(OFILES) $(TARGET).o + $(CXX) $(CXXFLAGS) -o $@ $(TARGET).o $(OFILES) $(LIBS) + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $< + +PHONY: clean run all + +clean: + rm *.o $(TARGET) + +run: + ./$(TARGET) + +all: + make $(TARGET) diff --git a/cpp/add_digit_anywhere_primes/add_digit_anywhere_primes.cpp b/cpp/add_digit_anywhere_primes/add_digit_anywhere_primes.cpp new file mode 100644 index 0000000..e262054 --- /dev/null +++ b/cpp/add_digit_anywhere_primes/add_digit_anywhere_primes.cpp @@ -0,0 +1,35 @@ +/* include little library I made */ +#include "../common/util.h" +#include "../common/tree.h" +#include + +auto next(ull x) -> std::vector { + std::vector new_xs; + ull temp; + std::string str_x = std::to_string(x); + for (int i = 0; i < str_x.length(); i++) { + for (int d = 0; d < 10; d++) { + if (!(i == 0 && d == 0)) { + str_x = std::to_string(x); + str_x.insert(i, std::to_string(d)); + /* std::cout << x << ' ' << str_x << ' ' << i << ' ' << d << '\n'; */ + temp = std::stoull(str_x); + if (is_prime(temp)) { + new_xs.push_back(temp); + } + } + } + } + return new_xs; +} + +auto main() -> int { + /* starts off with a tree with value 0 and no children and searches 20 + * iterations, feel free to tweak to whatever you want + */ + Tree tree(0, {2, 3, 5, 7}); + for (int i = 0; i < 20; i++) { + tree.step(next); + print_vec(tree.longest_path()); + } +} diff --git a/cpp/append_digit_primes/append_digit_primes b/cpp/append_digit_primes/append_digit_primes new file mode 100755 index 0000000..4f2f05a Binary files /dev/null and b/cpp/append_digit_primes/append_digit_primes differ