Difference between revisions of "Solução: Problema da conjectura de Goldbach (Admilson Souza)"

From AdonaiMedrado.Pro.Br
Jump to: navigation, search
(New page: <code lang="c"> //Conjectura de Goldbach. #include <stdio.h> int numeroPrimo(int numero) { int contador, resultado; if (numero < 2) return 0; if (numero == 2) return 1; f...)
 
 
Line 1: Line 1:
 
<code lang="c">
 
<code lang="c">
 
//Conjectura de Goldbach.
 
  
 
#include <stdio.h>
 
#include <stdio.h>
  
 
+
int numeroPrimo(unsigned int numero)  
int numeroPrimo(int numero)  
+
 
{  
 
{  
 
   int contador, resultado;
 
   int contador, resultado;
Line 22: Line 19:
 
}
 
}
  
void decomporEmParcelas(int numero)
+
void decomporEmParcelas(unsigned int numero)
 
{
 
{
   int parcela1, parcela2, contador;
+
   unsigned int parcela1, parcela2, contador;
 
   contador = 1;
 
   contador = 1;
 
   do
 
   do
Line 31: Line 28:
 
       parcela2 = numero - contador;   
 
       parcela2 = numero - contador;   
 
       contador++;
 
       contador++;
   }while ((numeroPrimo(parcela1) == 0) || (numeroPrimo(parcela2) == 0));
+
   }while (numeroPrimo(parcela1) == 0 || numeroPrimo(parcela2) == 0);
   printf ("%d\n", parcela1);
+
   printf ("%u\n", parcela1);
   printf ("%d\n", parcela2);  
+
   printf ("%u\n", parcela2);  
 
}
 
}
 
  
 
int main()
 
int main()
 
{   
 
{   
   int P;
+
   unsigned int P;
 
   do
 
   do
 
   {
 
   {
      printf ("Digite um numero par P (onde 2 < P <= 4294967294) :\n");
+
       scanf ("%u", &P);
       scanf ("%d", &P);
+
 
   }
 
   }
 
   while (P % 2 != 0 || P <= 2 || P > 4294967294);
 
   while (P % 2 != 0 || P <= 2 || P > 4294967294);

Latest revision as of 00:57, 2 April 2009

#include <stdio.h>
 
int numeroPrimo(unsigned int numero) 
{ 
   int contador, resultado;
   if (numero < 2) return 0;
   if (numero == 2) return 1;
   for(contador = 2; contador < ((numero + 3) / 2) ; contador++) 
   {
      if (numero % contador) resultado = 1;
      else 
      {
         return 0;
      }
   }
   return resultado;
}
 
void decomporEmParcelas(unsigned int numero)
{
   unsigned int parcela1, parcela2, contador;
   contador = 1;
   do
   { 
      parcela1 = contador;
      parcela2 = numero - contador;  
      contador++;
   }while (numeroPrimo(parcela1) == 0 || numeroPrimo(parcela2) == 0);
   printf ("%u\n", parcela1);
   printf ("%u\n", parcela2); 
}
 
int main()
{  
   unsigned int P;
   do
   {
      scanf ("%u", &P);
   }
   while (P % 2 != 0 || P <= 2 || P > 4294967294);
   decomporEmParcelas(P); 
   return 0;
}