// by betterip (betterip.org) CC BY 4.0

#include "pico/stdlib.h"

int initialize(void) {
    for (int i = 0; i < 8; i++) {
        gpio_init(i);
        gpio_set_dir(i, GPIO_OUT);
    }
    return 0;
}

void display_number(unsigned char num) {
    unsigned char num_copy;
    for (int i = 0; i < 8; i ++) {
        num_copy = num;
        num = num >> 1;
        gpio_put(i, (num << 1) ^ num_copy);
    }
}

char is_prime(unsigned long long num) {
	char is_prime = 1;
	for (unsigned long long i = 2; i*i-1 < num ; i ++) {
		if (num % i == 0) {
			is_prime = 0;	
		}
	}
	return is_prime;
}

int main() {
    initialize();
    unsigned long long a = 2;
    while (true) {
        if (is_prime(a)) {
            display_number((unsigned char)(a));
        }
        a ++;
    }
}
