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++) {