methoB_man Postado Março 24, 2012 Denunciar Share Postado Março 24, 2012 Escrever um algoritmo que calcula e escreve o produto dos números primos entre 92 e 1478#include <conio.h> #include <stdio.h> main() { int num,b,soma; soma=1; for (num=92;num<=1478;num++) { for (b=2;b<num;b++) { if (num%b!=0) { soma=soma*num; printf("soma=%d",soma); } } } getch(); }não sei porque isso está dando zero , em nenhum momento eu disse para soma ser 0 ou o número ser 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 methoB_man Postado Março 24, 2012 Autor Denunciar Share Postado Março 24, 2012 (editado) demorou uma eternidade , mas saiu :fiz a soma ,por que a multiplicação ficou muito grande >.<#include <stdio.h> #include <conio.h> main () { int i,j,numero; for (i=92;i<=1478;i++) { numero=0; j=2; while (j<i) { if (i % j == 0) { j=i; numero=1; } j=j+1; } if (numero== 0) { printf("\n%d",i); } } getch(); } Editado Março 25, 2012 por Durub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 methoB_man Postado Março 24, 2012 Autor Denunciar Share Postado Março 24, 2012 pessoal , fui tentar novamente , só que de outra forma , mas não consegui olhem #include <conio.h> #include <stdio.h> main() { int num,b,soma,c; soma=0; c=0; b=1; for (num=92;num<=1478;num++) { while (b<=num) { b++; if (num % b == 0) { c++; } } if (c==2) { printf("%d\n",num); } }tentei apenas imprimir o número primo dessa forma , mas não deu certo , alguém poderia me responder porque ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Saint Kidd Postado Março 26, 2012 Denunciar Share Postado Março 26, 2012 (editado) Vou tentar aqui. Editado Março 26, 2012 por Saint Kidd Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Saint Kidd Postado Março 26, 2012 Denunciar Share Postado Março 26, 2012 Acho que estou conseguindo, mas não terminei ainda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 27, 2012 Denunciar Share Postado Março 27, 2012 Olá,A maneira mais fácil de encontrar números primos numa faixa é verificar por quantos números ele é divisível.Se for divisível por mais que 2 então não é primo.A questão do zero é que um int só pode representar valores entre -32767 e +32768 se for signed e0 a 65535 se for unsigned.Como o produto dos números primos nessa faixa é maior do que esses valores você precisa usar o tipo "long int"#include <conio.h>#include <stdio.h>main(){ int num,b, div; long int soma; soma=1; for (num=92;num<=1478;num++) { div = 0; for (b = 1; b <= num; b++) { if (!(num % B)) div++; } if (div <= 2) { soma *= num; printf("%d,", num); } } printf("\n\nSoma: %ld\n"); getch();}[/codebox] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Saint Kidd Postado Março 27, 2012 Denunciar Share Postado Março 27, 2012 Eu tentei aqui e o algorítmo do CPP deu certo, mas mesmo declarando long int ou unsigned long int, o produto não vai dar certo.Precisaria usar float acho, mas a operação de produto não permite que se use float. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 28, 2012 Denunciar Share Postado Março 28, 2012 Ok, mesmo se usar "long double" ainda ocorre overflowO produto desse range só vai poder ser calculado com precisão pelos computadores quânticos.Pra usar "long double" e só mudar 3 linhas:long double soma;soma = 1.0;printf("\n\nSoma: %f\n", soma);Abs Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
methoB_man
Escrever um algoritmo que calcula e escreve o produto dos números primos entre 92 e 1478
não sei porque isso está dando zero , em nenhum momento eu disse para soma ser 0 ou o número ser 0
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.