All SolutionsAll Solutions

🧮

Primes

Week 8, 2026

Python: Solution with pre-generated list of primes | Alexevi | Python Solutions

def main() -> None: maximum = 10000 # input of program primes = get_primes(maximum**2 + 1) difference = 0 MinusOneCount = 0 AddOneCount = 0 for num in range(1, maximum+1): n = num**2 - 1 if search(n, primes): print(f"{num}^2 - 1 = {n}") print(f"Difference: {num - difference}") print() difference = num MinusOneCount += 1 n = num**2 + 1 if search(n, primes): print(f"{num}^2 + 1 = {n}") print(f"Difference: {num - difference}") print() difference = num AddOneCount += 1 print("--- Counts ---") print() print(f"MinusOneCount: {MinusOneCount}") print(f"AddOneCount: {AddOneCount}") def get_primes(n: int) -> list[int]: ns = [] primes = [] ns.append(2) for i in range(3, n + 1, 2): ns.append(i) n = len(ns) for i in range(1, n): if ns[i] != 0: b = ns[i] a = b * 2 while ((b + a) - 1) // 2 < n: b += a ns[(b - 1) // 2] = 0 for i in range(n - 1): if ns[i] != 0: primes.append(ns[i]) return primes def search(num: int, primes: list[int]) -> bool: a = 0 b = len(primes) - 1 while True: i = int((a + b) / 2) if num > primes[i]: a = i elif num < primes[i]: b = i else: return True if b - a == 1: if num == primes[a] or num == primes[b]: return True return False main()

for() if() loop | Draw6 | C-- Solutions

// week 8 challenge #include <cmath> using namespace std; bool isPrime(int n) { if (n <= 1) return false; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) return false; } return true; } int main() { int limit = 100000000;// 10000 x 10000 int plus = 0; int minus = 0; int keep, math, diff, square = 0;// difference markers for (int i = 1; i * i <= limit; i++) { square = i * i; math = i; if (isPrime(square - 1)) { diff = math - keep; keep = square - 1; math = square; minus++; std::cout << i << "^2 - 1 = " << square - 1 << "\n"; std::cout << "Difference: " << diff << "\n\n"; } if (isPrime(square + 1)) { diff = math - keep; keep = i; math = square; plus++; std::cout << i << "^2 + 1 = " << square + 1 << "\n"; std::cout << "Difference: " << diff << "\n\n"; } } std::cout << "--- Counts ---\n\n"; std::cout << "MinusOneCount: " << minus << "\n"; std::cout << "AddOneCount: " << plus << "\n"; return 0; } //EOF

Gen all primes and check if target number present | greenya | Odin Solutions

package main import "core:fmt" import "core:time" main :: proc () { MAX_X :: 10_000 primes := gen_primes(limit=MAX_X*MAX_X) minus_one_count := 0 add_one_count := 0 prev_primed_x := 0 for x in 1..=MAX_X { for s in ([2] struct { shift: int, counter: ^int } { { shift=-1, counter=&minus_one_count }, { shift=+1, counter=&add_one_count }, }) { if x*x+s.shift in primes { fmt.printfln("%i^2 %c 1 = %i", x, s.shift>0?'+':'-', x*x + s.shift) fmt.printfln("Difference: %i", x - prev_primed_x) prev_primed_x = x s.counter^ += 1 } } } fmt.println("--- Counts ---") fmt.printfln("MinusOneCount: %i", minus_one_count) fmt.printfln("AddOneCount: %i", add_one_count) } @require_results gen_primes :: proc (limit: int, allocator := context.allocator) -> map [int] struct {} { fmt.printfln("Generating primes, limit=%i...", limit) start := time.tick_now() defer fmt.printfln("...done in %v", time.tick_since(start)) Number_State :: enum u8 { undefined, prime, not_prime } numbers := make([] Number_State, limit+1, allocator=context.temp_allocator) for n in 2..=limit { if numbers[n] == .undefined { numbers[n] = .prime for k:=n+n; k<=limit; k+=n { if numbers[k] == .undefined { numbers[k] = .not_prime } } } } primes := make(map [int] struct {}, allocator) for n in 2..=limit { if numbers[n] == .prime { primes[n] = {} } } return primes }

Python Write to file | THOMAS L | Python Solutions

//Paste your solution here if you want to share it publicly def IsPrime(x: int): for i in range(2, min(x, 10000)): # for i in range(2, x): if x % i == 0: return False return True addCount = 0 minCount = 0 prevNum = 0 with open("example.txt", "w") as file: for a in range(1, 10001): if IsPrime(a ** 2 - 1) and a != 1: file.write(str(a) + "^2 - 1 = " + str(a ** 2 - 1) + "\n") file.write("Difference: " + str(a - prevNum) + "\n\n") minCount += 1 prevNum = a if IsPrime(a ** 2 + 1): file.write(str(a) + "^2 + 1 = " + str(a ** 2 + 1) + "\n") file.write("Difference: " + str(a - prevNum) + "\n\n") addCount += 1 prevNum = a file.write("--- Counts ---\n") file.write("MinusOneCount: " + str(minCount) + "\n") file.write("AddOneCount: " + str(addCount) + "\n")

dunno | Peiran D | Python Solutions

//Paste your solution here if you want to share it publiclydef main() -> None: maximum = 10000 primes = get_primes(maximum**2 + 1) difference = 0 MinusOneCount = 0 AddOneCount = 0 for num in range(1, maximum+1): n = num**2 - 1 if search(n, primes): print(f"{num}^2 - 1 = {n}") print(f"Difference: {num - difference}") print() difference = num MinusOneCount += 1 n = num**2 + 1 if search(n, primes): print(f"{num}^2 + 1 = {n}") print(f"Difference: {num - difference}") print() difference = num AddOneCount += 1 print("--- Counts ---") print() print(f"MinusOneCount: {MinusOneCount}") print(f"AddOneCount: {AddOneCount}") def get_primes(n: int) -> list[int]: ns = [] primes = [] ns.append(2) for i in range(3, n + 1, 2): ns.append(i) n = len(ns) for i in range(1, n): if ns[i] != 0: b = ns[i] a = b * 2 while ((b + a) - 1) // 2 < n: b += a ns[(b - 1) // 2] = 0 for i in range(n - 1): if ns[i] != 0: primes.append(ns[i]) return primes def search(num: int, primes: list[int]) -> bool: a = 0 b = len(primes) - 1 while True: i = int((a + b) / 2) if num > primes[i]: a = i elif num < primes[i]: b = i else: return True if b - a == 1: if num == primes[a] or num == primes[b]: return True return False main()