function isPrime(number){
if(number===1){
return false;
}
const len = Math.floor(Math.sqrt(number));
let flag = true;
for(let i=2;i <= len;i++){
if(number%i===0){
flag = false;
break;
}
}
return flag;
}
function getPrime(number){
let arr=[];
let i=2;
if(isPrime(number)){
arr.push(number);
}
while(i<=Math.floor(number/2)){
if(number%i===0 && isPrime(i)){
arr.push(i);
}
i++;
}
return arr;
}
function union(arr1,arr2){
let unionList=[];
for (let i = 0; i < arr1.length; i++) {
unionList.push(arr1[i]);
}
for (let i = 0; i < arr2.length; i++) {
if(unionList.indexOf(arr2[i])<0){
unionList.push(arr2[i])
}
}
return unionList;
}
function statistics(n){
let arr=[];
let primeList = [];
let all=0;
for(let i=0; i<n;i++){
let number = parseInt(prompt());
arr.push(number);
primeList.push(getPrime(number))
all += primeList[i].length;
}
for(let i=0;i < n-1;i++){
let b = arr[i];
let buffer = primeList[i];
let flag = true;
for (let j = i+1; j < n; j++) {
if(b*arr[j] ===arr[i]*arr[j] && flag ){
all += union(primeList[i],primeList[j]).length;
flag=false;
}else{
all += union(primeList[i],primeList[j]).length;
all += union(buffer,primeList[j]).length;
}
b*=arr[j];
if(isPrime(arr[j])){
buffer.push(arr[j]);
}else{
buffer = union(buffer,primeList[j]);
}
}
}
return all;
}
console