Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    21

    [C] Programma che verifica se un numero è primo

    Buongioorno! Allora, studio informatica all'università quindi premetto che faccio gli esercizi sulla piattaforma dell'università. L'esercizio è: "scrivere un programma che legga da tastiera un intero e stabilisca se il numero è primo. L'input consiste di una sola riga contenente l'intero x. Il programma stampa in output 1 se x è primo, 0 altrimenti."
    Io ho scritto questo codice:
    codice:
    #include <stdio.h>
    main()
    {
        int n;
        int div;
        int primo;
        scanf ("%d", n);
        div=2;
        while (div<n && primo==0) {
            if (n%div==0) primo=0;
            else {primo=1;
            div++;
            }
        }
        printf("%d", primo); 
        return 0;
    }
    Se io lo invio nella piattaforma dell'uni mi da questo errore: "Execution killed with signal 11 (could be triggered by violating memory limits)". Mentre se provo a compilarlo e eseguirlo tramite il prompt dei comandi mi da errore e mi si chiude tutto. Ho pensato che forse il ciclo while non riusciva a chiudersi ma non capisco il perché. Qualcuno può aiutarmi? Vi prego ci sto impazzendo ahahah
    Grazie mille in anticipo
    Ultima modifica di MItaly; 07-03-2016 a 13:17 Motivo: Tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con scanf devi usare il puntatore a n

    E la variabile primo va inizializzata
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    21
    Come so dura ahahah pensavo che quell'errore volesse dire un problema nel ciclo e invece era proprio quello. Però loro per vedere se va bene fanno 4 prove, 4 input che ovviamente devono dare 4 output, se i 4 output del mio programma sono esatti allora posso passare all'esercizio successivo. Solo che tre test vanno bene, uno no.. L'input è un numero di 8 cifre, non va bene perché è sbagliato usare int?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti puoi spiegare meglio?

    Con quale valore hai provato che non va?

    Chi ti ha detto che usare un int non è corretto?


    P.S. Quello dello scanf è un errore grave ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    21
    Si lo so, ma io mi stavo concentrando sul ciclo while, ma lo so che ci va il &, è stato un errore di distrazione, devo riuscire a farne il meno possibile.
    Comunque con 90000002 non va, nessuno mi ha detto che non è corretto ma mi ricordo che per numeri grandi si deve usare long e non int, ma non so fino a che grandezza va bene int e da quale è obbligatorio usare long. Visto che il problema me lo da su questo numero e basta ho pensato che fosse quello.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da Saever Visualizza il messaggio
    Si lo so, ma io mi stavo concentrando sul ciclo while...
    Quel valore è di pochi milioni mentre un int (che è a 32 bit sulle macchine moderne), può gestire valori fino ad un paio di miliardi, quindi non c'entra.

    Il fatto è che il codice che hai scritto non è corretto, neanche per valori piccoli come 8 o 12 ... rivedilo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    21
    Buongiorno.. Ieri ci ho pensato molto ma non riesco a capire dove ho sbagliato.. Puoi aiutarmi?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Qual è l'algoritmo su cui si basa il programma? Descrivilo...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    21
    Dato un numero n verifico se i numeri da 2 a n-1 dividono n. Se lo dividono non è primo altrimenti si.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da Saever Visualizza il messaggio
    Dato un numero n verifico se i numeri da 2 a n-1 dividono n. Se lo dividono non è primo altrimenti si.
    Ok ma descrivi linea per linea ,,, in particolare non capisco la if else
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.