Ese ciclo while parece nunca cambiar la condicion que chequea.
j deberia cambiar pero no ocurre.
Sugiero tener 2 variables, una "fija", antes de ese ciclo, otra que varíe en el ciclo.
La variable "fija" cambia después de ejecutar el ciclo.
Algo asi como
Código pseudo:
Ver originali = 0
for ( j = 0; j < N; ++j ) {
// comparar a [i] y a[j] cuando i != j
}
i++
o alguna variante del mismo tema.