• Matéria: Informática
  • Autor: arthurcarlosolp7nirx
  • Perguntado 8 anos atrás

Galera, preciso de ajuda, se alguém puder responder somente a parte do algoritmo pra mim, ficarei agradecido (é um algoritmo em C utilizando somente o while, me ajudem) ;-) até o dia 26 pf


Existem duas formas de verificar se um determinado número inteiro é primo ou não. Na primeira forma, mais ineficiente, divide-se o número por todos os números inteiros menores que ele até 2. Na segunda forma, mais eficiente, divide-se o número por todos os números que estejam no intervalo (2, raíz quadrada do número).

Vocês devem criar um programa para verificar todos os números primos de um determinado intervalo usando os dois métodos mencionados. Deve-se criar um arquivo de texto para registrar o tamanho do intervalo, o tempo de execução usando o método 1 e o tempo de execução usando o método 2. O arquivo deverá ser utilizado para gerar um gráfico comparativo entre as duas abordagens.

Depois de pronto, vocês devem executar o programa em pelo menos duas máquinas diferentes (diferente QDE de memória RAM e CPU) e comentar os resultados obtidos.

Após tudo isso, vocês devem escrever um relatório descrevendo os resultados. O relatório deve ter as seguintes seções:

Respostas

respondido por: bokomoko
1
Eis um algoritmo em C que lista os números primos. Esse é o mais rápido que eu consegui conceber.

Dica: extrair raiz quadrada de um número é um esforço computacional grande.

#include <stdio.h>
int primofast( int numero) {  if (numero == 2) return 1;  if (numero %2 == 0) return 0;  for (int x=3;x<=numero/x;x+=2){    if (numero%x) continue;    return 0;  }  return 1;}
int main(void) {  for (int i=2;i<1000;i += 1 + (i>2)) if (primofast(i)) printf("%d ",i);}
Segue o link
https://repl.it/@bokomoko/calcula-primo-rapidamente
Perguntas similares