• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ferreira_j_s

problema com numeros primos

2 mensagens neste tópico

boas pessoal.. e assim eu necessito de faxer uns programas em C relacionados com os numeros primos mas ainda programo em C e por isso nao tenho muita pratica.

no primeiro programa é dado um numero inteiro n, e é imprimida a lista dos numeros primos menores ou iguais a n.

eu neste caso fiz o seguinte:

# include <stdio.h>
# include <stdlib.h>
int main (void)
{
     int n,i,x;
     
        printf ("Introduza um numero inteiro e positivo:\n");
        scanf ("%d",&n);
        
        while (n<1)
        {
              printf ("O numero nao e positivo. Introduza outro numero\n");
              scanf ("%d",&n);
              }
              {
              for (i=2;i<n;i++)
              {
                  for (x>1;x<i;x++)
                      if (x%i==0)
                      i=i;
                      printf ("%d\n",i);
                      }
                      }
                  
system ("pause");
return 0;
}

             

este programa da me ua lista mas nao é dos primos, é de todos os numeros.

o problema ta com o i=i; mas eu nao sei km faxer para me so aparecer os numeros primos.

outro programa e que dado um numero inteiro n, devolva o maior primo que nao excede n.

e por fim e que dado um numero inteiro n, devolva o número de ares de primos gémeos (tipo 3 e 5 ou 5 e 7... tem k ter apenas um numero nao primo entre 2 primos)

estes programas sao para juntar todos e fazer com int maiorPrimo (int n) e int contaGemeos (int n) por exemplo.

no final tera que se usar return em vez de printf para estes numeros aparecerem mas agora apenas quero fazer com printf.

tambem quero apenas utilizar o while, o do, o for, o if, o printf e o scanf, mais nada.

espero que me possam ajudar ate quarta feira antes das 12 da tarde.

obrigada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A forma mais eficiente de resolver a primeira parte do problema é através do crivo de Eratosthenes.

for (x>1;x<i;x++)

Não seria x=1 em vez de x>1?

i=i;

Isto estar lá ou não é a mesma coisa...

Se x%i==0 e i não é 1 nem x, então x não é primo!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora