Programma Semplicissimo AIUTO!!!

di il
7 risposte

Programma Semplicissimo AIUTO!!!

Ciao a tutti, scusate ma sono nuovo e spero che non infrangerò nessuna regola. Se infrango qualche regola ditemelo. Ho fatto un programma in c semplicissimo che mi permette di contare i divisori di un numero, ma mi è stato detto dal mio professore che devo allegerire il ciclo ma non so come fare. Vi lascio il codice, per favore aiutatemi

#include <stdio.h>

main()
{
freopen("input.txt", "r",stdin);
freopen("output.txt", "w",stdout);

long int conta=0,j,num;
scanf("%d",&num);
for(j=1;j<=num;j=j++)
{
if(num%j==0)
{
conta=conta++;
}
}
printf("%d",conta);
}

7 Risposte

  • Re: Programma Semplicissimo AIUTO!!!

    Per non infrangere il regolamento andrebbe semplicemente letto!
    
    #include <stdio.h>
    
    main()
    {
        freopen("input.txt", "r",stdin);
        freopen("output.txt", "w",stdout);
    
        long int conta=0,j,num;
        scanf("%d",&num);
    
        for(j = 1; j <= num; ++j)
            if( num % j == 0)
               ++conta;
    
        printf("%d",conta);
    }
    
    Farsi spiegare cosa intendeva per " alleggerito" non sarebbe stata una cattiva domanda...
  • Re: Programma Semplicissimo AIUTO!!!

    
    #include <stdio.h>
    
    main()
    {
        freopen("input.txt", "r",stdin);
        freopen("output.txt", "w",stdout);
    
        long int conta=0,j,num;
        scanf("%d",&num);
    
        for(j = 1; j <= num; ++j)
            conta += !(num % j);
    
        printf("%d",conta);
    }
    ancora un pò e diventa anoressico....
  • Re: Programma Semplicissimo AIUTO!!!

    Grazie, proprio così intendeva
  • Re: Programma Semplicissimo AIUTO!!!

    
    #include <stdio.h>
    
    main()
    {
        freopen("input.txt", "r",stdin);
        freopen("output.txt", "w",stdout);
    
        long int conta, j, num;
    
        scanf("%d",&num);
        
        conta = 0;
        j = num;
        while( j ) conta += !( num % j--);
    
        printf("%d",conta);
    }
    basta....mi fermo, altrimenti nn si capisce più il codice
  • Re: Programma Semplicissimo AIUTO!!!

    Questo programma risulta molto lento con numeri sopra il miliardo, non esiste qualche altro modo per contare i divisori di un numero? Tipo avevo pensato di terrorizzare il numero e poi di contare i fattori trovando il numero dei divisori, ma non so come farlo in c, qualche idea?
  • Re: Programma Semplicissimo AIUTO!!!

    alele ha scritto:


    Questo programma risulta molto lento con numeri sopra il miliardo, non esiste qualche altro modo per contare i divisori di un numero? Tipo avevo pensato di TERRORIZZARE il numero e poi di contare i fattori trovando il numero dei divisori, ma non so come farlo in c, qualche idea?
    @alele: l'idea di TERRORIZZARE il numero e' corretta.
    Sperando, comunque, che non scappi a gambe levate per la PAURA , una breve ricerca su Google (30s al massimo) usando i termini:

    numero divisori intero fattorizzare

    e trovi la risposta.

    Ma a questo punto ti scorni con un'altro problema: come fattorizzare un numero in modo efficiente!

    Ma trattalo bene, sto povero numero, cosi non si terrorizza. Magari qualche carezza sulla testa o una grattatina sotto il collo o dietro le orecchie
  • Re: Programma Semplicissimo AIUTO!!!

    Si ho sbagliato a scrivere, comunque grazie
Devi accedere o registrarti per scrivere nel forum
7 risposte