Programma per al fattorizzazione con comportamento anomalo

di il
1 risposte

Programma per al fattorizzazione con comportamento anomalo

Salve a tutti, dovrei implementare un programma che visualizzi la scomposizione in fattori primi di un numero n immesso da tastiera. Il programma funziona, ma non capisco perchè l'ultimo numero è sempre uno 0. Eseguendo il debug es. numero=63 esegue correttamente la scomposizione e stampa: 3 , 3, 7 ma in coda al 7 stampa anche uno 0, infatti dal debugger viene assegnato anche primi[3]=0 che non ha senso (infatti il valore di i è ancora a 2). Debuggando quando ragigungo la situazione:
numero=7
k=7
i=2
primi[3,3]
mi aspetterei che il compilatore arrivato a:
 primi[i]=k;
assegni a primi[2] il valore di 7, ma oltre che a fare ciò, assegna a primi[3] il valore 0.
Non capisco il perchè.

Idee?

Grazie



#include <stdio.h>
int main()
{
    int numero,k,i,j,primi[100];
    printf("inserisci un numero da fattorializzare: ");
    scanf("%d",&numero);
    printf("la fattorializzazione è: \n");
    k=2;
    i=0;
    while(numero!=1)
    {
        if(numero%k==0)
        {
            primi[i]=k;
            numero=numero/k;
            ++i;
        }
        else
        {
            ++k;
        }
    }
    for(j=0; j<=i; j++)
    {
        printf("%d \n",primi[j]);
    }
    return 0;
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte