void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
/* Digit table for the 7-segment display */
const uint8_t digitTable[] = {
0b11000000,
0b11111001,
0b10100100,
0b10110000,
0b10011001,
0b10010010,
0b10000010,
0b11111000,
0b10000000,
0b10010000,
0b11111111,
};
bool isPrime(int num) {
if (num < 2) return false;
for (int j = 2; j < num/2 + 1; j++) {
if (num%j == 0) {
return false;
}
}
return true;
}
int i = 0;
void loop() {
// put your main code here, to run repeatedly:
// for (int i = 0; i < 10; i++) {
// displayNumber(i);
// delay(1000);
// }
if (isPrime(i)) {
displayNumber(i);
delay(1000);
}
i++;
if (i > 9) {
i = 0;
}
}
void displayNumber(int num) {
// Ensure the number is within the valid range (0-9)
uint8_t segments = digitTable[num];
// Display the number on the 7-segment display
digitalWrite(2, bitRead(segments, 0));
digitalWrite(3, bitRead(segments, 1));
digitalWrite(4, bitRead(segments, 2));
digitalWrite(5, bitRead(segments, 3));
digitalWrite(6, bitRead(segments, 4));
digitalWrite(7, bitRead(segments, 5));
digitalWrite(8, bitRead(segments, 6));
}