help info. SĂ SE AFISEZE CMMDC ȘI CMMMC DINTRE SUMA CIFRELOR LUI N ȘI INVERSUL ACESTUIA (LUI N).
Răspunsuri la întrebare
Răspuns:
import java.util.Scanner;
public class Divisor {
private static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.print("Introduceti un numar n= ");
int num = scanner.nextInt();
int reversedNum = getReversedNumber(num);
int sumOfDigitsForNum = getSumOfDigits(num);
System.out.println("Cel mai mare divizor comun pentru " + sumOfDigitsForNum + " si " + reversedNum +
" este: " + getMaximalCommonDivisor(sumOfDigitsForNum, reversedNum));
System.out.println("Cel mai mic multiplu comun pentru " + sumOfDigitsForNum + " si " + reversedNum +
" este: " + getMinimalCommonMultiple(sumOfDigitsForNum, reversedNum));
}
private static int getReversedNumber(int n) {
int reverse = 0;
while (n != 0) {
reverse = reverse * 10 + n % 10;
n /= 10;
}
return reverse;
}
private static int getSumOfDigits(int n) {
int sum = 0;
while (n != 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
private static int getMaximalCommonDivisor(int firstNumber, int secondNumber) {
int max = Math.max(firstNumber, secondNumber);
for (int i = max - 1;i >= 2; i--) {
if (firstNumber % i == 0 && secondNumber % i == 0) {
return i;
}
}
return 1;
}
private static long getMinimalCommonMultiple(int firstNumber, int secondNumber) {
int i = Math.max(firstNumber, secondNumber) + 1;
do {
if (i % firstNumber == 0 && i % secondNumber == 0) {
return i;
}
i++;
} while(i < firstNumber * secondNumber);
return (long)firstNumber * secondNumber;
}
}
Explicație: