#!/usr/bin/env python3 """Fibonacci, Phi, Primes, and the Number 2. Chain: 2 -> phi -> Fibonacci -> Zeckendorf -> prime distribution -> zeta -> lattice. """ import math from collections import defaultdict PHI=(1+math.sqrt(5))/2 def is_prime(n): if n<2:return False if n<4:return True if n%2==0 or n%3==0:return False i=5 while i*i<=n: if n%i==0 or n%(i+2)==0:return False i+=6 return True def sieve(n): if n<2:return [] ip=[True]*(n+1);ip[0]=ip[1]=False for i in range(2,int(n**0.5)+1): if ip[i]: for j in range(i*i,n+1,i):ip[j]=False return [i for i in range(n+1) if ip[i]] def fib(n): f=[0,1] for i in range(2,n):f.append(f[-1]+f[-2]) return f def lucas(n): l=[2,1] for i in range(2,n):l.append(l[-1]+l[-2]) return l def pisano(m): a,b=0,1 for i in range(1,m*m+1): a,b=b,(a+b)%m if a==0 and b==1:return i return -1 def zeckendorf(n): fs=[f for f in fib(30) if 00] print(f'Fib powers of 2: {fp2}') print(f'F(3)=2 is the departure point. After 2, Fibonacci leaves 2^n permanently.') print(f'\n--- 3. FIBONACCI PRIMES ---') fs40=fib(40);fpr=[(i,f) for i,f in enumerate(fs40) if is_prime(f)] print(f'F(n) prime: {fpr}') idx=[i for i,_ in fpr];pidx=[i for i in idx if is_prime(i)] print(f'Indices: {idx} Prime indices: {pidx}') print(f'\n--- 4. ZECKENDORF OF PRIMES ---') for p in sieve(50):print(f' {p:>4} = {" + ".join(str(f) for f in zeckendorf(p))}') print(f'\n--- 5. LUCAS = FIBONACCI STARTING FROM 2 ---') lc=lucas(15);print(f'Lucas: {lc}');print(f'Fib: {fs[:15]}') print(f'\n--- 6. PHI POWERS = LUCAS NUMBERS ---') for n in range(1,15): pn=PHI**n;ni=round(pn) if abs(pn-ni)<0.05: fl='FIB' if ni in set(fs) else 'LUCAS' if ni in set(lc) else '' print(f' phi^{n:>2} = {pn:>10.4f} ~ {ni:>5} {fl}') print(f'\n--- 7. LATTICE: 16 = phi^{math.log(16)/math.log(PHI):.4f} ---') print(f'Khra/Gixx ratio 16 sits between phi^5 and phi^6') print(f'\n--- 8. CONTINUED FRACTIONS ---') print(f'phi = [1;1,1,1,...] (most irrational)') print(f'sqrt(2) = [1;2,2,2,...] (second most irrational)') print(f'sqrt(2) = 2^(1/2) — self-referential') print(f'\n--- 9. PISANO PERIODS ---') for p in [2,3,5,7,11,13,17,19,23,29]: pp=pisano(p);print(f' p={p:>3}: pi={pp:>4} pi/p={pp/p:.4f}') print(f' p=2: pi(2)=3. The number 2 generates 3 through Fibonacci.') print(f'\n--- SYNTHESIS ---') print(f'2 -> phi -> Fibonacci -> primes -> zeta -> zeros -> lattice') print(f'2 is at the TOP. It generates everything. It is the axiom.') if __name__=='__main__':main()