diff --git a/main.cpp b/main.cpp
index 5eec5c4719c871d99043c9e22db02ce12e4b885b..edeec2bd066d31a18ae7358b958dfb24a5316ae5 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,52 @@
 #include <iostream>
 
 int main() {
+    int is_div(int number, int i){
+    return (number % i) == 0;
+}
+
+int is_prime(int number){
+    for (int i = 0; i < number/2; i++){
+        if (is_div(number, i)){
+            return 0;
+        }
+    }
+    return 1;
+}
+
+typedef struct node{
+    struct node* next;
+    int value;
+} node_t;
+
+typedef struct queue{
+    struct node* tail;
+    struct node *head;
+    int size;
+} queue_t;
+
+queue_t prime_divs(number){
+    queue_t* rep;
+    for(int i = 0; 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(int number) {
         int count = 0;
         for (int i = 2; i < number / 2; i++) {