Skip to content
Extraits de code Groupes Projets
main.c 1,57 ko
Newer Older
  • Learn to ignore specific revisions
  • Gilles Prieur's avatar
    Gilles Prieur a validé
    #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]);
    }