From 13a72cc5437cf8a46b59ae5e96c4ba8109288a7d Mon Sep 17 00:00:00 2001 From: xamidev Date: Wed, 24 Jul 2024 20:26:49 +0200 Subject: [PATCH] Add program: primes --- iso/boot/kernel.elf | Bin 26192 -> 26272 bytes os.iso | Bin 501760 -> 501760 bytes src/kernel/shell.c | 8 ++++++-- src/programs/primes.c | 23 +++++++++++++++++++++++ src/programs/programs.h | 1 + 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 src/programs/primes.c diff --git a/iso/boot/kernel.elf b/iso/boot/kernel.elf index fcbd624aa8eabe31282f340991abedfdfb246775..8423cb09eb9cc4ae4fe968eddf0085df95a64272 100755 GIT binary patch delta 6932 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 Bx-|d* delta 6481 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 ", 9); get_input(input_buffer, BUFFER_SIZE); - printf("\n"); + puts("\n"); // Childish shell if (strcmp(input_buffer, "") == 0) @@ -21,7 +21,7 @@ void shell_install() } else if (strcmp(input_buffer, "help") == 0) { - printf("This is the Blank Operating System\ndesigned for fun by xamidev\n\nCommand help:\n\n\thelp - shows this message\n\tpanic - makes the kernel panic\n\twords - generates random words\n"); + printf("This is the Blank Operating System\ndesigned for fun by xamidev\n\nCommand help:\n\n\thelp - shows this message\n\tpanic - makes the kernel panic\n\twords - generates random words\n\tprimes - computes prime numbers\n"); } else if (strcmp(input_buffer, "panic") == 0) { @@ -31,6 +31,10 @@ void shell_install() { program_words(); } + else if (strcmp(input_buffer, "primes") == 0) + { + program_primes(); + } else { printf("Unknown command %s\n", input_buffer); } diff --git a/src/programs/primes.c b/src/programs/primes.c new file mode 100644 index 0000000..b06ae7e --- /dev/null +++ b/src/programs/primes.c @@ -0,0 +1,23 @@ +#include "../libc/stdint.h" +#include "../libc/stdio.h" + +#define PRIMES_MAX 1000000 + +bool isPrime(int n) +{ + if (n == 1 || n == 0) return false; + for (int i=2; i<= n/2; i++) if (n%i == 0) return false; + return true; +} + +void program_primes() +{ + for (long long x=0; x