Hol rontottam el a kódot?
Írj olyan programot, amely paraméterben megadott két számról eldönti, hogy barátságban állnak-e egymással!
Segítség: két szám barátságban áll egymással, ha az egyik (önmagánál kisebb) osztóinak összege megegyezik
a másik számmal és viszont.
pl.: a (220, 284) számpár barátságos.
Válaszaitokat előre is köszönöm.
package bartátszámok;
import java.util.*;
/**
*
* @author -
*/
public class Bartátszámok {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Adjon meg egy számot: ");
int szam = scan.nextInt();
System.out.println("Adjon meg egy másik számot: ");
int szam2 = scan.nextInt();
int osszeg=1;
int osszeg2=0;
for(int i =1; i<szam;i++){
if(szam%i==0){
osszeg+=i;
}
}
for(int j=1;j<szam2;j++){
if(szam2%j==0){
osszeg2+=j;
}
}
if(osszeg==szam2 && osszeg2==szam ){
System.out.println("Ez a két szám barátszám");
}
}
}
Úgy nagyon nehéz segíteni, ha nem írod le, milyen hibaüzenetet kapsz. A másik, hogy a kódot másold be ide: [link] és csak a linket oszd meg. Így megmarad a formázás.
Az előttem válaszolónak annyiban igaza van, hogy nem szép dolog ékezetes osztályneveket adni, de Javában nem is hiba.
int osszeg=1;
int osszeg2=0;
Amúgy meg itt az egyiket miért 1-re a másikat miért 0-ra inicializálod? Mi ennek az értelme? Ez szerintem tuti hiba.
Na, még 10-20 hozzászólás és meglesz a hibajelenség.
Hogy "nem működik"?
Na megnéztem, megvan a hiba.
Az osszeg és az osszeg2 változót is 0-ra kell inicializálnod.
Így nálam működik.
Egyébként jó a logika, csak ezt felejtetted ki.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!