Calcular a raiz só dos números inteiros

Olá,criei um simples programa que calcula a raiz quadrada dos números,para isto eu utilizei :

System.out.println(“Digite o número”);

Scanner scan = new Scanner(System.in);
int num = scan.nextInt();

System.out.println("A raíz do número é : " + Math.sqrt(num));

Mas eu queria que ele só calculasse a raiz de números que tenham a mesma,ou seja,mostrar só os resultados inteiros(int),ou seja,se o resultado for um número não inteiro(double) o meu programa iria chamar invés do resultado,o método:
System.out.println("Este número não tem raiz quadrada);
Alguém poderia me dar uma força?

Você pode fazer tipo:

int num = sc.nextInt();

double raiz = Math.sqrt(num);

if(raiz - (int) raiz == 0){
System.out.println("A raiz de " + num + ": " + raiz);
}else{
System.out.println(num + “Não tem raiz exata”);
}

/* esse " raiz - (int) raiz == 0 " vai pegar o valor da raiz, (que é double) e diminuir pelo valor inteiro da raiz ( (int) raiz ) e verificar se é igual a 0. Se for, logo a raiz é um número exato, senão é um número decimal, ai você diz que não tem raiz
*/`

1 curtida

Deu certo aqui!Obrigado,isso irá me ajudar em diversas ocasiões!Valeu

1 curtida