Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda em funções


fabioh0891

Pergunta

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

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Mnemonic
Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...