Galera, estou fazendo um código que calcule a similaridade entre e vetores, com a distancia euclidiana. Mas não encontro o erro, a similaridade está saindo

import java.lang.*;
import java.io.IOException; 
import java.text.DecimalFormat;
import java.util.Scanner;

public class main{
	public static int[] getVector(String input){
		//cria o vetor de strings lendo a string
		String[] inputVec = input.replace("[", "").replace("]", "").replace("'", "").split(",");
		int[] r = new int[inputVec.length]; //vetor que vai guardar os numeros inseridos
		int index = 0;
		for(String a : inputVec)
			
			r[index++] = Integer.parseInt(a);
		return r;
	}
	
	public static void main(String[] args) throws IOException{
		Scanner leia = new Scanner(System.in);
		String vetorP = leia.next();		
		String vetorQ = leia.next();

		int P[] = getVector(vetorP);
		int Q[] = getVector(vetorQ);
		
		double internal = 0;
		double tomorrow = 0;
		double internal1 = 0;
		//Faz o somatorio subtraindo cada Pn por Qn e elevando o resultado ao quadrado
		for(int n = 0; n < P.length; ++n){
			internal += Math.pow(P[n]-Q[n], 2);
		}
		
		System.out.printf("%.4f\n",Math.sqrt(internal));
		for(int n = 0; n < P.length; ++n){
			internal += Math.pow(P[n], 2);
			tomorrow += Math.pow(Q[n], 2);
		}
		
		internal1 += Math.sqrt(internal);
		tomorrow += Math.sqrt(tomorrow);
		
		double produto = 0;
			for(int n = 0; n < P.length; ++n){
				produto = (P[n] * Q[n]);
			}
			DecimalFormat molde;
			molde = new DecimalFormat("0.00");
			double similaridade = 0;
			similaridade = produto / (internal1 * tomorrow);
			System.out.println(molde.format(similaridade));
	}
}