fabioh0891 Postado Setembro 2, 2009 Denunciar Share Postado Setembro 2, 2009 Eae galera... tenho uma questão de Linguagem C... Escreva uma função que gere e apresente os dez primeiros números primosmaiores que 100. Um número primo é qualquer inteiro positivo que édivisível apenas por si próprio e por 1.já rachei a cabeça... mas não saiu nada até agora.. quem puder me ajudar.. agradeço.. tenho que entregar isso... até sábadoValeu galera Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mnemonic Postado Setembro 2, 2009 Denunciar Share Postado Setembro 2, 2009 for(i=100; x<100; i++) if(primo(i) { primos[x] = i; x++; } int primo(int p) { int x; for(x=2; x<p; x++) if( (p%x) == 0 ) return 0; return 1; }Não testei aqui, mas acho que dá pra entender a lógica.Primeiro um for, com i começando em 100, até que x (o numero de primos) será igual a 100 (quando declarar o x não esqueça de inicializar ele em 0).O for testa todos os números com a função primo, que apenas usa outro for pra testar se o resto da divisão daquele número com outro qualquer é 0 ou não. Se for 0, significa que o número é divisível, e portanto não é primo... então a função retorna 0. Caso o número consiga passar em todos os testes do FOR, a função retorna 1 no final. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabioh0891 Postado Setembro 2, 2009 Autor Denunciar Share Postado Setembro 2, 2009 amigo fica dando este erro... agradeço pela ajuda... mas pelo que entendi... esta função vai mostrar os numeros primos até 100? ou os 10 primeiros maiores que 100 (como está na questão)?mesmo assim muito obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Mnemonic Postado Setembro 3, 2009 Denunciar Share Postado Setembro 3, 2009 (editado) Desculpa amigo, acho que você iniciou os estudos nessa linguagem recentemente, certo?O código que eu mandei era uma função e um laço FOR que usa essa função.No exemplo que eu dei, ele guardava os valores num vetor "primo[]".Se você não souber usar vetor ainda, ou não quiser usar, pode imprimir os valores na tela direto. Vou colocar aqui o exemplo do programa, mas você precisa perder 4 dias da sua vida e aprender a sintaxe da linguagem, ou não vai adiantar muito.#include <stdio.h> #include <stdlib.h> int primo(int); int main() { int x=0, i; for(i=100; x<10; i++) if(primo(i)) { printf("%d \n", i); x++; } return 0; } int primo(int p) { int x; for(x=2; x<p; x++) if( (p%x) == 0 ) return 0; return 1; }Ah, eu confundi no começo e pensei que era pra mostrar 100 números.Agora corrigi pra 10.A saída aqui foi essa:101 103 107 109 113 127 131 137 139 149 Editado Setembro 3, 2009 por Mnemonic Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabioh0891 Postado Setembro 3, 2009 Autor Denunciar Share Postado Setembro 3, 2009 amigo... eu estou no segundo semestre da facul.. mas no primeiro semestre... a prof era muito ruim e nem chegou a introduzir esse assunto na minha turma e o prof ta explicando como s a gnt soubesse.. por isso to meio perdido...em relação a vetor já sei usar um pouco...mas amigo... quando executa ele mostra os resultados rapidao e sai... nem dá pra ver... tentei por um system("pause") ou getch()... mas nada... você sab qual código pra usar?mas o resto ta certinho... agradeço mais uma vez pela ajuda Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 waldyrpe Postado Setembro 3, 2009 Denunciar Share Postado Setembro 3, 2009 Cara, vê se isso resolve -> http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenesO algoritmo do crivo de Eratóstenes é mais robusto e funciona comprovadamente.[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabioh0891 Postado Setembro 3, 2009 Autor Denunciar Share Postado Setembro 3, 2009 cara... vlw pelo toque.. mas tem coisa q não estou estudando ai... ai fica complicado... o q o Mnemonic falou da certinho pra mim... só ta faltando a tela ficar ... mesmo xD.. mas vlw do mesmo jeito Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fabioh0891 Postado Setembro 3, 2009 Autor Denunciar Share Postado Setembro 3, 2009 AMIGO... vlw mesmo.. consegui aqui sozinho.. precisa mais não... tópico resolvido já...rsrs vlw mesmo amigo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Setembro 4, 2009 Denunciar Share Postado Setembro 4, 2009 Já usei a Sieve of Erasthotenes em um programa.É bem legal o algoritmo mesmo.No mais, resolvido!Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fabioh0891
Eae galera... tenho uma questão de Linguagem C...
Escreva uma função que gere e apresente os dez primeiros números primos
maiores que 100. Um número primo é qualquer inteiro positivo que é
divisível apenas por si próprio e por 1.
já rachei a cabeça... mas não saiu nada até agora.. quem puder me ajudar.. agradeço.. tenho que entregar isso... até sábado
Valeu galera
Link para o comentário
Compartilhar em outros sites
8 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.