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

Duvida somando numeros


GeleiaGels

Pergunta

O programa é o seguinte, ele pega os numeros primos de 2 até n, após pegar, os numeros primos na posição parta (0, 2...) são elevados a -1, os de posição impar são elevados a -1 e depois multiplicados a -1.

Estou tendo dificuldade em somar todos os numeros finais.

ex

n primos: 2,3,5,7,11

ficaria 1/2 -1/3 1/5 -1/7 1/11 ...

eu teria que somar tudo.

#include <stdio.h>
#include <math.h>
int main()
{
int numero = 2;
int num_divisores = 0;
int n, i, soma;
int aux=0;
int b, vector;
float f, a;
scanf("%d",&n);
while(numero <= n)
{
for(i=1; i<=n; i++)
{
if(numero%i == 0)
{
num_divisores++;
}
}

if(num_divisores<=2)
{
if(aux%2)
{

f = pow(numero,-1);
}
else
{
f = pow(-1*numero,-1);
}

aux++;
printf(" %f ",f);
}

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá, amigo.

Fiz o código para o programa em C++ (não sei programar em C). Deve servir de base para você entender a lógica.

Qualquer dúvida me avise.

#include <iostream>
#include <locale>
#include <vector>

using namespace std;

int n = 0; int Numero_de_Primos = 0;
vector<float> Primos;


void Primos_ate_n(int);
void Construir_Sequencia(vector<float>, int);
void Mostrar_Soma(vector<float>, int);

void Primos_ate_n(int n)
{
    Primos.resize(n);
    Primos[0] = 2;

    int i = 0; int j = 0; int Numero_de_Divisores = 0; int Vector_Index = 1;

    for(i = 3; i <= n; i++)
    {
        Numero_de_Divisores  = 0;
        for(j = 2; j < i; j++)
        {
            if ( i % j == 0)
            {
                Numero_de_Divisores++;
            }

        }
        if (Numero_de_Divisores == 0)
        {
            Primos[Vector_Index] = i;
            Vector_Index++;
            Numero_de_Primos++;
        }
    }
    Construir_Sequencia(Primos,Numero_de_Primos);
}

void Construir_Sequencia(vector<float> Primos, int Numero_de_Primos)
{
    int i = 0;
    for (i = 0; i <= Numero_de_Primos;i++)
    {
        if (i == 0 || i % 2 == 0)
        {
            Primos[i] = 1/(Primos[i]);
        }
        else
        {
            Primos[i] = (1/Primos[i]) * (-1);
        }
    }

    Mostrar_Soma(Primos, Numero_de_Primos);

}

void Mostrar_Soma(vector<float> Primos, int Numero_de_Primos)
{
    int i = 0; float Soma = 0;
    for (i = 0; i <= Numero_de_Primos; i++)
    {
        Soma +=  Primos[i];
    }

    cout << "\n\nO valor da soma é: " << Soma << endl;
}

int main()
{
    setlocale(LC_ALL, "Portuguese");
    cout << "Digite até que valor a sequência deve ir" << endl;
    cin >> n;
    Primos_ate_n(n);
    cin.get();
    return 0;
}

Att.,
Pedro

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...