Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Congettura di Goldbach
Forum - C/C++ - Congettura di Goldbach

Avatar
atota (Normal User)
Newbie


Messaggi: 2
Iscritto: 06/11/2008

Segnala al moderatore
Postato alle 18:00
Giovedì, 06/11/2008
Salve a tutti!!! :D
Ragazzi qualcuno mi sa dire come risolvere questo es, non riesco proprio ho letto in giro che bisgona usare un algoritmo riguardante la congettura di Goldbach ma proprio nn ci sono riuscito. Ecco quello ke ho fatto:

/* Scrivere una funzione che prende in ingresso un numero pari e restituisce 1
se il numero e' la somma di due numeri primi, 0 altrimenti.
Utilizzare una funzione primo che prende in ingresso un numero e
restituisce 1 se questo e' primo, 0 altrimenti. */
#include <iostream>
#include <cstdlib>
using namespace std;
int primo (int);
int restitutore (int);
int somma (int, int);  
int main () {
    int numero,ris,resto;
     cout<<"Programma che verifica se un numero pari è primo, e se nn lo è verifica se è la somma di due num primi \n";
     cout<<"Inserire numero pari: "<<endl;
     cin>>numero;
     primo (numero);
     ris=primo (numero);
     restitutore (numero);
     cout<<"E' un numero primo: "<<ris<<endl;
     cout<<"E' somma di numeri primi: "<<restitutore (numero)<<endl;
     system("pause");
}
int primo (int a) {
    for (int i=2;i<=a;i++){
         if (i==a)
         return 1;
         if (a%i==0)
         return 0;

    }
}
int restitutore (int a){
    int temp2=0;
    for (int i=2;i<a;i++){
        if (primo(i)==1){
           cout<<primo(i)<<" ";
           cout<<i<<endl;
           if (i+temp2==a)
           return 1;
           if (i+temp2!=a)
           temp2=i ;
           }
        }
}  
Grazie a tutti anticipatamente


---Nessuno risponde!?!? vi prego datemi una mano...:(

Ultima modifica effettuata da atota il 07/11/2008 alle 1:10
PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 10:42
Venerdì, 07/11/2008
http://en.wikipedia.org/wiki/Goldbach%27s_conjecture

la congettura di Goldbach dice che ogni numero pari maggiore di 4 si puo' esprimere come somma di due numeri primi.

quindi questo programma + che altro servirebbe per verificare la congettura di Goldbach...

Focalizzati sulla realizzazione della funzione per determinare se un numero e' primo oppure no.

Il codice che hai postato mi pare sufficientemente sbagliato da richiedere una totale riscrittura.

Non ha senso verificare se un numero pari e' primo o no... l'unico numero primo pari è 2: tutti gli altri sono divisibili per 2 per definizione di numero pari.

Ciao :)

Ultima modifica effettuata da gioser il 07/11/2008 alle 10:56
PM Quote
Avatar
atota (Normal User)
Newbie


Messaggi: 2
Iscritto: 06/11/2008

Segnala al moderatore
Postato alle 16:27
Venerdì, 07/11/2008
ma io infatti nn verifico se un numero pari è primo io verifico se è somma di numeri primi...la verifica dei numeri primi la faccio sui numeri primi appunti precedenti il numero pari dato dall'utente...

PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 8:47
Lunedì, 10/11/2008
Testo quotato

Postato originariamente da atota:
Codice sorgente - presumibilmente Plain Text

  1. cout<<"Programma che verifica se un numero pari è primo, e se nn lo è verifica se è la somma di due num primi \n";
  2.      cout<<"Inserire numero pari: "<<endl;
  3.      cin>>numero;
  4.      primo (numero);
  5.      ris=primo (numero);





Tu qui, almeno nelle intenzioni, controlli se il numero pari è primo ;)

PM Quote