Laborator FAIMA #9 / An 1 Semestru 1

Se citesc de la tastatura 3 numere intregi a, b, c, separate prin virgule, reprezentand parametrii unei ecuatii de gradul 2 a*x2+b*x+c=0. Sa se afiseze solutiile reale ale ecuatiei, sau mesajul "Ecuatia nu are solutii reale".

Exemple:

1,2,1
Solutii: 1,1
1,-2,1
Solutii: -1,-1
1,0,1
Solutii: -1,1
1,1,1
Solutii: Ecuatia nu are solutii reale

Rezolvare - Laborator FAIMA #8 / An 1 Semestru 1


public class RezolvareFAIMA {

public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String nl = "";
while (!nl.equals("stop")) {
nl = input.nextLine().toLowerCase();
try {
String[] sNumere = nl.split(",");
if (sNumere.length > 1) {
int[] iNumere = new int[sNumere.length];
for (int i = 0; i < sNumere.length; i++) {
iNumere[i] = Integer.parseInt(sNumere[i]);
}
int cmmdc = iNumere[0], cmmmc = iNumere[0];
for (int i = 1; i < iNumere.length; i++) {
// Folosim algoritmul lui Euclid. Mai multe informatii despre CMMDC: http://en.wikipedia.org/wiki/Greatest_common_divisor
cmmdc = calculeazaCMMDC(cmmdc, iNumere[i]);
// Folosim reducerea la CMMDC. Mai multe informatii: http://en.wikipedia.org/wiki/Least_common_multiple
cmmmc = cmmmc * iNumere[i] / calculeazaCMMDC(cmmmc, iNumere[i]);
}
System.out.println("CMMMC: " + cmmmc + "; CMMDC: " + cmmdc);
} else {
System.out.println("Sunt necesare cel putin doua numere.");
}
} catch (Exception e) {
if (!nl.equals("stop")) {
System.out.println("Numere incorecte");
}
}
}
System.out.println("Program terminat. O zi buna!");
}

private static int calculeazaCMMDC(int a, int b) {
if (b == 0) {
return a;
} else {
return calculeazaCMMDC(b, a % b);
}
}
}