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]);
+}