|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2007
Messaggi: 265
|
[C++] Prime armi, Programma che verifichi se un numero è primo. Help!
Salve a tutti.. come da titolo sono alle prime armi con questo linguaggio...
Vorrei riuscire a creare un programma che verifichi se un numero è primo o no... ecco il mio codice...che vi dico già da ora che è sbagliato: Codice:
#include <stdio.h> #include <stdlib.h> main() { int x, num, prim; printf("\tNumeri primi."); printf("\n\nSe vuoi verificare che un numero e' primo digita 1, \naltrimenti digita 2 se vuoi avere stampati \ni primi n numeri primi: "); scanf("%d", &x); while ((x!=1)&&(x!=2)) { printf("Il comando da te inserito e' errato, digita nuovamente il comando: "); scanf("%d", &x); } if (x==1) { printf("Inserisci il numero da verificare: "); scanf("%d", &num); if (num%2==0) {printf("Il numero non e' primo.");} else for (int i=2; i<num;) { prim=num%i; if (prim!=0) { printf("Il numero da te inserito e' primo."); break; } else i++; } } printf("\n"); system("pause"); return 0; }
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 1242
|
Che problemi ti da di preciso? Intanto non dovrebbe esserci un valore di ritorno int per il main?
__________________
Concertina: "I know the truth is in between the 1st and 40th drink" |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2007
Messaggi: 265
|
scusa ma non ho capito..
comunque il problema è che non incrementa i a 3 e quindi non controlla..diciamo che mi dice che tutti i numeri dispari sono primi...
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 1242
|
Quote:
![]()
__________________
Concertina: "I know the truth is in between the 1st and 40th drink" |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Aug 2007
Messaggi: 265
|
sisi...li devo porre che se inserisco 2 mi dice automaticamente che è primo... quello lo risolvo con un semplice if+printf
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Aug 2007
Messaggi: 265
|
nessuno sa aiutarmi??
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
includi <math.h> e cambia il for in questa maniera:
Codice:
for (int i = 2; i <= (int)sqrt(num); i++) { if (num % i == 0) { printf("Il numero da te inserito NON e' primo."); break; } } |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Comunque stai programmando praticamente in C (nel senso che non stai usando nessuna peculiarità del C++)
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Aug 2007
Messaggi: 265
|
si lo sò... il compilatore è il dev c++
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#10 |
Junior Member
Iscritto dal: Jun 2005
Messaggi: 26
|
Sono d'accordo stai programmando in C...
Un esempio: printf e' di c cout<< e' c++ Ma ci sono molte altre cose... Poi se vuoi continua cosi' ma non parlare di c++ postando codice alla maniera di c.Senza offesa,il mio e' un consiglio. |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jul 2006
Città: MILANO
Messaggi: 1645
|
Quote:
Codice:
int i; for (i = 2; i <=sqrt(num); i++) { if (num % i == 0) { break; } } if ( ! ( i <=sqrt(num) ) ) printf ( "primo!" ) ;
__________________
xoooxoooxooox |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:53.