Jump to content
Fórum Script Brasil
  • 0

Primos de uma sequência de fibonacci


Question

Olá pessoal, fiz um programa em c para os mostrar os numero primos de uma sequencia Fibonacci, porém ele está me retornando como se o número 1 é primo, o que preciso alterar no meu programa?

#include "stdio.h"
 

int main()
{

  int a, b, auxiliar, i, n, primo, k;
 

  a = 0;
  b = 1;
 
  
  printf("Digite um número: ");

  scanf("%d", &n);
  printf("Série de Fibonacci:\n");
   printf("%d\n", b);
 
  
  for(i = 0; i < n; i++)
  {
    auxiliar = a + b;
    a = b;
    b = auxiliar;

    primo=0;
        for(k=1; k<=auxiliar; k++)
            if((auxiliar%k)==0)
                 primo++;
   
         if(primo>2)
            printf("%d não e primo\n", auxiliar);

        else
            printf("%d e primo\n", auxiliar);
 
   
  }
}

 

Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0
1 hora atrás, jeanzin001 disse:

if (primo>2)

printf("%d não e primo\n", auxiliar);

else

printf("%d e primo\n", auxiliar);

O número  1 terá apenas um divisor, caindo no else e aparecendo como primo.
Do conceito de número primo, é necessário que ele possua exatamente dois divisores: 1 e ele mesmo.
É mais consistente então você utilizar esta condição:

if (primo==2)
printf("%d e primo\n", auxiliar);
else
printf("%d não e primo\n", auxiliar);


 

Link to post
Share on other sites
  • 0

Naturalmente. Seu algorítimo exibirá apenas os primos da Sequência de Fibonacci:
0,1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...
Os números 7 e 11 não fazem parte da sequência, escopo de análise.

Link to post
Share on other sites
  • 0

compreendi,estou fazendo tantas perguntas porque sou iniciante na área de programação.

mas me diz uma coisa, porque meu código continua mostrando o número 1 e pulando para o 13.

a sequencia de fibonacci é 1,1,2,3,5,8,13,21....

coloquei para mostrar 6 fibonacci então deveria retornar 2,3,5, mas está vindo 1,2,3,5,13.

vou anexar uma foto, consegue me dar dicas materiais de estudo de lógica ?acho que está me faltando mais lógicas na hora de programar rsrs

print.PNG

Link to post
Share on other sites
  • 0
//Programa: Primo Fibonacci
//Função: Obter todos os primos até o termo n da Sequência de Fibonacci
//Autor: Hazzu#7444
//Data: 05/06/2020

//Cabeçalhos
#include <stdio.h>
#include <locale.h>


//Função principal
int main(){
    //Declaração de variáveis
    int i, div, n, a=1, b=2, aux;
    
    setlocale(LC_ALL, "Portuguese");    //Configurando terminal para português
	
	//Apresentação
	printf("------ Primo Fibonacc ------\n");
	printf("Olá, esse programa irá informar todos os primos da Sequência de Fibonnaci até o termo n.\n");

	//Solicitando número
	printf("-Digite o valor de n:\n");
	scanf("%d", &n);
	
	//Resultados triviais
	if (n > 0) printf("1 não é primo.\n");
	if (n > 1) printf("1 não é primo.\n");
	if (n > 2) printf("2 é primo!\n");
    
	//Avaliando termos maiores
	for (i=4; i<=n; i++){		//Três termos da sequência já foram definidos, vamos começar no 4°
		//Calculando próximo termo
		aux  = b;
		b += a;
		a = aux;
		
		//Testando se é primo
		for (div=2; div<=b/2; div++){
			if (b%div == 0){
				printf("%d não é primo.\n", b);
				break;
			}
		}
		if (div > b/2) printf("%d é primo!\n", b);
	}
	
    //Encerrando programa
    return 0;
}

 

Edited by Hazzu
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148691
    • Total Posts
      644531
×
×
  • Create New...