Goldbach
Sobre uma breve discussão a respeito do Teorema de Goldbach.Pintou no Só Matemática um código sobre.
Reescrevi-o para C. Há uma falha a ser corrigida, mas fica para depois.
#include <stdio.h>
#include <math.h>
int IsPrime (int p){
int j=0;
if (p%2 == 0) return 0;
for (j=3; j<=1+(int)sqrt(p) && (p%j!=0); j+=2);
return (p%j!=0);
}
int main (int argc, char *argv[]) {
int i=0, m=0, n=0;
if (argc!=2){
puts ("use ./goldbach
}
n=atoi(argv[1]);
if (n<=4){
puts ("numero muito pequeno"); exit(1);
}
if (n%2==1){
puts ("numero impar"); exit(1);
}
printf ("%d:", n);
for (i=3; i<=n/2; i+=2) {
if (IsPrime(i) && IsPrime(n-i)) {
printf("\n\t %ld = %ld + %ld",n, i, n-i);
m++;
}
}
printf ("\n%d representacoes distintas\n", m);
return 0;
}
0 Comentário(s):
Postar um comentário
<< Principal