Numeri primi

Per far riconoscere al programma tutti i numeri primi ho dovuto fargli trovare tutti i divisori del numero immesso e poi lui li confrontava vedendo se ci erano divisori diversi da 1 o il numero inserito. Il programma con i numeri primi funzione bene mentre con gli altri numeri riconosce tutti i fattori come non primi tranne l’1 che lo da come primo. Quindi prima di farci una funzione vorrei sapere se l‘esercizio così va bene.

#include <stdio.h>
int a,b,c,d,tot,numeri;
int divisori[50];
main(){
    b=0;
    scanf("%d",&a);
        while(b<a){
            b++;
            divisori[b]=a/b;
        if(divisori[b]*b==a){
            printf("\ni divisori sono:%d",divisori[b]);
            if(divisori[b]!=1){
                if(divisori[b]!=a){
                printf ("\nil numero non e primo");}}
                else{
                    printf("\nil numero e primo");
    }
}

    }
}

 

 

Cattura Cattura2

Commenti