diff --git a/main.c b/main.c new file mode 100644 index 0000000000000000000000000000000000000000..ccf718cb785a4e199cb560d376e84ded71d9b3a1 --- /dev/null +++ b/main.c @@ -0,0 +1,77 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdint.h> + +typedef struct node{ + struct node* next; + int value; +} node_t; + +typedef struct queue{ + struct node *tail; + struct node *head; + int size; +} queue_t; + + +int is_div(int number, int i) { + return (number % i) == 0; //true = 1, false = 0 +} + +int is_prime(int number) { + for (int i = 2; i < number / 2; i++) { + if (is_div(number, i)) { + return 0; + } + } + return 1; +} + +queue_t prime_divs(number){ + queue_t* rep; + for(int i = 2; i < number/2; i++){ + if(is_prime(i) && is_div(number, i)){ + node_t* new; + new -> next = NULL; + new -> value = i; + if(rep ->size == 0){ + rep ->size = 1; + rep ->head = new; + rep -> tail = new; + } + else{ + rep -> size ++; + rep -> tail -> next= new; + rep-> tail = new; + } + } + } + return *rep; +} + +int *prime_div_list(number) { + int count = 0; + for (int i = 2; i < number / 2; i++) { + if (is_prime(i) && is_div(number, i)) { + count++; + } + } + int *prime_dividers = malloc(sizeof(int)*count); + int index = 0; + for (int i = 2; i < number / 2; i++) { + if (is_prime(i) && is_div(number, i)) { + prime_dividers[index] = i; + index++; + } + } + return prime_dividers; +} + + +int main() { + printf("Hello, World!\n"); + int a = is_prime(58631); + int* l = prime_div_list(24); + printf("%d", l[4]); +}