Ir ao conteúdo
  • Cadastre-se

Alguém poderia me ajudar ? - Linguagem C exercício.


Posts recomendados

Tenho que fazer um algoritmo de um exercício, porém estou com dificuldade de entender o que tenho que fazer para cria-lo. Alguém poderia faze-lo em portugol para eu ter uma melhor noção ? 

 

Obrigado desde já!

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Dois números são considerados amigáveis se um deles corresponder à soma dos divisores (exceto o próprio número) do outro.

 

Por exemplo: analise os números 8 e 10.

• Os divisores de 8 são: 1, 2, 4 e 8. Os divisores de 10 são: 1, 2, 5 e 10.

•Assim, como a soma dos divisores de 10 (exceto ele próprio) resulta em 8, pode-se dizer que os número 8 e 10 são amigáveis.

 

Elabore um programa que receba dois números inteiros quaisquer e determine se eles são amigáveis ou não.

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa tarde.

Poste seu código explicando onde está sua dúvida, dentro da TAG de código:

 

O que eu posso adiantar aqui é que você vai ter que somar os divisores de cada um dos 2 números e guardá-los em uma variável somaDivisor1 e somaDivisor2, para depois compará-los com os números digitados (somaDivisor1 == num2) (somaDivisor2 == num1).

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia amigo, para conseguir resolver este exercício é necessário conhecimento prévio em números amigáveis, números perfeitos, e operações matemáticas básicas em pelo menos 1 qualquer linguagem de programação, para que você consiga desenvolvê-lo com facilidade. A ajuda esta aqui, de forma matemática vamos escrever a equação para que você possa seguir a lógica em programação:

 

1-) Za*+ = {Za ∈ R│Za > 1}: = (0, 1, 2, 3, 4, ...) =  Za. Digamos que Z é o dividendo da sua questão, portanto este deve ser positivo e maior que divisor, o que implica numa lógica if, para ter certeza que o dividendo é maior.

2-) Temos os membros da divisão Za / Zb = Zc portanto image.png.eee8df2532ae96348b6db2aa255ffb26.png Z*+. Ou seja, Dividindo Za que representa o dividendo que é um inteiro positivo maior que 1, por Zb que é menor que Za  que é representado por Zb*+ = {Zb C Za│x > 1}: = (0, 1, 2, 3, 4, ...), certificamos que o número é divisivel para só então podermos dividir, portanto é necessário chegar tanto o valor do dividendo como do divisor.

3-)Cria-se 2 vetores de tamanho N e 2 variáveis inteiras, para armazenar a sequência dos quocientes, e depois basta soma-los.

4-)Então executamos a soma de cada posição do vetor A e passamos o valor para uma variável A.

5-)Novamente repetimos o passo 4 desta vez para o vetor B, somamos o valor armazenado dos quocientes da segunda operação e armazenamos em B. Lembrando que as váriaveis da divisão são Za1/Zb1 = Zc1 e Za2/Zb2 = Zc2 para a segunda divisão

6-) Comparamos se A = B, que seria a soma dos quocientes, para que isto seja verdade, é necessário que a soma do vetor A seja armazenado em B, e depois a divisão seja praticada novamente em B e comparamos se B é igual Za1.

7-) Caso seja verdade retorna true, caso nao, retorna false.

 

 

Caso a explicação esteja muito complexa:

Passo 1-) Certificar que divisor e dividendo são int, e que são inteiros e não são primos.

Passo 2-) Listar todos os quocientes utilizados na divisão até chegar em 1, e armazenar a soma deles

Passo 3-) Pegar a soma deles que você obteve na etapa anterior e repetir o processo do passo 1.

Passo 4-) Você obterá um valor maior que o DIVISOR da primeira equação, portanto após repetir o passo 1, você deve comparar se a soma do quociente do resultado é igual ao divisor da primeira operação.

 

 

 

image.png

image.png

image.png

Link para o comentário
Compartilhar em outros sites

  • Coordenador

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!