Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] Aiuto numeri primi!

    Salve ragazzi non riesco a capire come devo fare questo programma. Potete correggermi la mia soluzione?
    Vi ringrazio.

    E' una funzione.
    codice:
    char numero_primo(int numero)
    {
     int i;
      If (numero == 0) 
          {return(printf("Il numero non è primo");
           }
        else { if (numero==1) || (numero==2)
                {return(printf("Il numero è primo");}}
        else {
                for (i=2,i<=numero-1;i++)
                   { if (numero % i)==0
                      {return(prinft("Il numero non è primo");
                        break;}
                    else
                       {return(printf("Il numero è primo"):
                        }
                    }
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Quando posti il codice, inseriscilo all'interno dei tag [code] e [/code], come richiesto dal regolamento.

    PS: 1 non è un numero primo. Ciascun numero primo ha esattamente 2 divisori (1 e se stesso). Il numero 1 ha un solo divosore (se stesso, vedi anche qui) e la sua inclusione nell'insieme dei numeri primi violerebbe il Teorema Fondamentale dell'Aritmetica.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Potete aiutarmi?

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Cosa non va nell'algoritmo?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Utente di HTML.it L'avatar di sotoli
    Registrato dal
    Mar 2008
    Messaggi
    150
    PS: 1 non è un numero primo.
    Esatto...poi mi sembra di ricordare che la funzione printf ritorni un intero che rappresenta il numero di caratteri stampati e non un char. C'è anche una parentesi } in meno.
    La condizione if (numero % i)==0 non va bene, devi scriverla così: if ((numero % i)==0).

    Secondo me una soluzione potrebbe essere questa:

    codice:
    void numero_primo(int numero)
    {
         int i;
         switch(numero)
         {
             case 1:
                 printf("Il numero non e' primo!");
                 return;
             case 2:
                 printf("Il numero e' primo!");
                 return;
             default:
                 for(i=2; i<numero-1; i++)
                 {
                     if((numero % i) == 0)
                     {
                         printf("Il numero non e' primo!");
                         return;
                     }
                 }
                 printf("Il numero e' primo!");
         }
    }

  6. #6
    Originariamente inviato da sotoli
    Esatto...poi mi sembra di ricordare che la funzione printf ritorni un intero che rappresenta il numero di caratteri stampati e non un char. C'è anche una parentesi } in meno.
    La condizione if (numero % i)==0 non va bene, devi scriverla così: if ((numero % i)==0).

    Secondo me una soluzione potrebbe essere questa:

    codice:
    void numero_primo(int numero)
    {
         int i;
         switch(numero)
         {
             case 1:
                 printf("Il numero non e' primo!");
                 return;
             case 2:
                 printf("Il numero e' primo!");
                 return;
             default:
                 for(i=2; i<numero-1; i++)
                 {
                     if((numero % i) == 0)
                     {
                         printf("Il numero non e' primo!");
                         return;
                     }
                 }
                 printf("Il numero e' primo!");
         }
    }
    Non ho capito bene come funziona lo switch! :S

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il costrutto switch è come una if a scelta multipla:
    codice:
    if (valore == 0) {
       condizione1();
    } else {
       if (valore == 1) {
          condizione2();
       } else {
          if (valore == 2) {
             condizione3();
          } else {
             condizione4();
          }
       }
    }
    Si traduce, più agevolmente così:
    codice:
    switch( valore ) {
       case 0: condizione1(); break;
       case 1: condizione2(); break;
       case 2: condizione3(); break;
       default: condizione4(); break;
    }
    Funziona solo con valori numerici interi (quindi, int e char).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.