- Es lo malo de no planificar bien el algoritmo XD. Y un buen IDE también se da cuenta de cosas extrañas, primero lo formateo con Ctrl + Alt + L ya que si vas evitar poner las llaves para los bucles for tienes que formatear bien tu código usando las identaciones o usar siempre llaves, formateando se puede ver un error de concepto bien feo al final:
-- Dice, esa variable j nunca se usa, esa variable i++ no tiene sentido, y que es posible que la función termine no devolviendo nada, tu bucle for está inestable.
- Puedes ver el algoritmo en C++ en este vídeo:
- Yo lo terminaría así:
Código
#include <stdio.h> int amigos(int, int); int main(void) { int A, B; } int amigos(int A, int B) { int i; int j; int contA = 0; int contB = 0; for (i = 1; i <= A / 2; i++) if (A % i == 0) { contA = contA + i; } for (j = 1; j <= B / 2; j++) { if (B % j == 0) { contB = contB + j; } } if (contA == B && contB == A) return 1; else return 0; }
Citar
C:\Users\EdSon\CLionProjects\untitled\cmake-build-debug\untitled.exe
220 284
son amigos si es 1, si es 0 no lo son == 1
Process finished with exit code 0
220 284
son amigos si es 1, si es 0 no lo son == 1
Process finished with exit code 0