Не совсеv понятно, чем не нравится результат?
В питоне: math.sqrt(388) = 19.697715603592208
В яве: Math.sqrt(388) = 19.697715603592208
Можно взять остаток от деления (%) на 2 или 4 (и далее), и тогда взять корень от результата деления.
int number = 388;
int tail = number;
int mul = 1;
if(number % 2 == 0) {
mul = 2; tail = number/mul;
}
if(number % 3 == 0) {
mul = 3; tail = number/mul;
}
if(number % 4 == 0) {
mul = 4; tail = number/mul;
}
if(number % 5 == 0) {
mul = 5; tail = number/mul;
}
if(number % 6 == 0) {
mul = 6; tail = number/mul;
}
if(number % 7 == 0) {
mul = 7; tail = number/mul;
}
if(number % 8 == 0) {
mul = 8; tail = number/mul;
}
if(number % 9 == 0) {
mul = 9; tail = number/mul;
}
System.out.printf("%d = %d√%d = %d * %.20f\n", number, mul, tail, mul, Math.sqrt(tail));
Результат
388 = 4√97 = 4 * 9,84885780179610400000
ХА! Немного оптимизировал!
int number = 388;
int tail = number;
int mul = 1;
for(int i=2; i<number/2; i++) {
if(number % i == 0) {
mul = i; tail = number/mul;
}
}
System.out.println(Math.sqrt(tail));
System.out.printf("%d = %d√%d = %d * %.20f\n", number, mul, tail, mul, Math.sqrt(tail));
Результат!
388 = 97√4 = 97 * 2,00000000000000000000