Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera,estou resolvendo uns exercícios em C mas empaquei neste:
**15) Dois numeros n1 e n2 sao ditos amigos entre si se a soma dos divisores de n1 (excluindo o proprio n1) eh igual a n2, e a soma dos divisores de n2 (excluindo o proprio n2) eh igual a n1.
Ex: 220 e 284. Façaa um programa que leia 2 valores e verifique se sao amigos entre si escrevendo uma mensagemapropriada.**
Quando vou executa-lo ele le apenas a primeira variável e encerra a execução na sequencia,imprimindo o valor errado no final.
A baixo o código:
*#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<locale.h>
int main()
{
int n1,n2,cont,cont2,i;
scanf("N1=%i",&n1);
scanf("N2=%i",&n2);
cont=0;
cont2=0;
for(i=1;i<n1;i=i+1){
if(n1%i==0)
cont=cont+i;
}
for(i=1;i<n2;i=i+1){
if(n2%i==0)
cont2=cont2+i;
}
if(cont==n2 && cont2==n1)
printf("Os numeros são amigos!");
if(cont!=n2)
printf("Os numeros não são amigos!");
system("pause");Agradeço desde já!
REAPROVEITANDO O TÓPICO:
Tenho que fazer o seguinte código:
26) Faça um programa que leia valores ate que seja digitado um valor negativo e escreva os 5 ultimos valores positivos digitados. Considere que serão digitados pelo menos 5 valores positivos. O programa deve escrever os valores na mesma ordem em que foram digitados pelo usuario.
Não esta dando certo,ele imprime uns numeros nada haver com o numero lido,porem no meu teste de mesa(a mao) a lógica está certa,estou esquecendo de considerar algo?
A baixo o código:
*#include<stdlib.h>
#include<stdio.h>
#include<math.h>
int main()
{
int n,i=0,j=0,aux,aux1,aux2,v[5];
while(n>=0){
if(i<4){
scanf("%i",&n);
v=n;* if(i>4){
scanf("%i",&n);
for(j=0;j<4;j++){
v[j]=v[j+1];
}
v[4]=n;
printf("V4=%i\n",v[4]);
}
}
for(i=0;i<4;i++){
* printf("%i\n",v**);*
}
system("pause");
}
scanf("%d%*c", &N);