#include<bits/stdc++.h>#define MAXN 1000000#define ll long long
using namespace std;int a[MAXN +10], last[MAXN +10];
vector <int> prime;
bool is_prime[MAXN +10];voidInit(){//线性筛memset(is_prime, true,sizeof(is_prime));
is_prime[1]= false;for(int i =2; i <= MAXN; i++){if(is_prime[i]) prime.push_back(i);for(int j =0; j < prime.size()&& i * prime[j]<= MAXN; j++){
is_prime[i * prime[j]]= false;if(i % prime[j]==0)break;}}}intmain(){Init();int n;scanf("%d",&n);for(int i =1; i <= n; i++)scanf("%d",&a[i]);
ll ans =0, t, tmp =0;for(int j =0; prime[j]<1000; j++){for(int i =1; i <= n; i++){if(a[i]% prime[j]==0){while(a[i]% prime[j]==0) a[i]/= prime[j];
t = i - last[prime[j]]-1;
tmp +=(1+ t)* t /2;
last[prime[j]]= i;}}}for(int i =1; i <= n; i++){if(a[i]>1){
t = i - last[a[i]]-1;
tmp +=(1+ t)* t /2;
last[a[i]]= i;}}for(int i =0; i <= prime.size(); i++){if(last[prime[i]]){
t = n - last[prime[i]];
tmp +=(1+ t)* t /2;
ans +=1ll*(1+ n)* n /2;}}printf("%lld\n", ans - tmp);}