Skip to content

Instantly share code, notes, and snippets.

@ayoubzulfiqar
Created June 9, 2025 14:09
Show Gist options
  • Save ayoubzulfiqar/94f099541b5f85bc9b9b1553d78d27db to your computer and use it in GitHub Desktop.
Save ayoubzulfiqar/94f099541b5f85bc9b9b1553d78d27db to your computer and use it in GitHub Desktop.
pygozig

Golang

package main

import (
	"fmt"
	"time"
)

func Fast() {
	var start time.Time = time.Now()

	for i := range 1000 {
		for j := range 1000 {
			for k := range 1000 {
				if i+j+k == 1000 && i*i+j*j == k*k {
					fmt.Printf("i=%d, j=%d, k=%d\n", i, j, k)
				}
			}
		}
	}

	var elapsed time.Duration = time.Since(start)
	fmt.Printf("TimeTook: %s\n", elapsed)
}

func Faster() {
	var start time.Time = time.Now()

	for i := 1; i < 1000; i++ {
		for j := i; j < 1000-i; j++ { // j starts from i to avoid duplicates
			k := 1000 - i - j
			if k > 0 && i*i+j*j == k*k {
				fmt.Printf("i=%d, j=%d, k=%d\n", i, j, k)
			}
		}
	}

	var elapsed time.Duration = time.Since(start)
	fmt.Printf("OptimizedTime: %s\n", elapsed)
}

func Fastest() {
	var start time.Time = time.Now()

	// Mathematical insight: a+b+c=1000 and a²+b²=c²
	// Substitute c=1000-a-b into the second equation
	// Solves to: 1000² - 2000(a+b) + 2ab = 0
	// Rearranged: b = (1000*(a-500))/(a-1000)

	for a := 1; a < 1000; a++ {
		denominator := a - 1000
		if denominator == 0 {
			continue
		}
		b := (1000 * (a - 500)) / denominator
		if b <= a || b >= 1000 {
			continue
		}
		c := 1000 - a - b
		if a*a+b*b == c*c {
			fmt.Printf("a=%d, b=%d, c=%d\n", a, b, c)
		}
	}
	var elapsed time.Duration = time.Since(start)
	fmt.Printf("Ultra-OptimizedTime: %s\n", elapsed)
}

func main() {
	Fast()
	Faster()
	Fastest()
}

Python

import time


def Fast():
    start: float = time.time()

    for i in range(1000):
        for j in range(1000):
            for k in range(1000):
                if i + j + k == 1000 and i * i + j * j == k * k:
                    print(f"i={i}, j={j}, k={k}")

    end: float = time.time()

    print(f"TimeTook:{end - start:6f}s")


def Faster():
    start: float = time.time()

    for i in range(1, 1000):
        for j in range(i, 1000 - i):  # j >= i to avoid duplicate solutions
            k = 1000 - i - j
            if k > 0 and i * i + j * j == k * k:
                print(f"i={i}, j={j}, k={k}")

    end: float = time.time()
    print(f"OptimizedTime: {end - start:.6f}s")


def Fastest():
    start = time.time()

    for a in range(1, 1000):
        denom = a - 1000
        if denom == 0:
            continue
        b = (1000 * (a - 500)) // denom
        if not (a < b < 1000):
            continue
        c = 1000 - a - b
        if a * a + b * b == c * c:
            print(f"a={a}, b={b}, c={c}")

    print(f"Ultra-Optimized: {time.time() - start:.6f}s")


if __name__ == "__main__":
    Fast()
    Faster()
    Fastest()

You will be in Shambles - Zig Will make you Jump out of the roof

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment