06/11/08 17:00
atota
Salve a tutti!!!
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...
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 07/11/08 0:10
aaa