sk
sk/*
Author:Raghav Bansal
IIIT Una
*/
#include <bits/stdc++.h>
#define int int64_t
#define mod 1000000007
#define pb push_back
#define mp make_pair
#define all(v) v.begin(),v.end()
#define BOLT ios_base::sync_with_stdio(false); cin.tie(0)
#define fill(a,val) memset(a,val,sizeof(a))
#define sz(a) sizeof(a)
#define X first
#define Y second
#define db double
#define MAX 1000001
#define size(s) s.size()
#define endl "\n"
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//#include <boost/multiprecision/cpp_int.hpp>
using namespace std;
typedef pair<int,int> pi;
typedef map<int,int> mii;
typedef vector<int> vec;
const db PI=acos(-1);
//using namespace __gnu_pbds;
//template < typename T > using indexed_set = //tree < T, null_type, less < T >, rb_tree_tag, tree_order_statistics_node_update >;
//template < typename T > using MinPriorityQueue = priority_queue < T, vector < T >, greater < T > >;
//template < typename T > T getsum(int bit[],int r){T sum=0;while(r){sum+=bit[r]; r-=(r&(-r));}return sum; }
//template < typename T > void update(int bit[],int idx,int val){while(idx<=n){bit[idx]+=val; idx+=(idx&(-idx));}}
int prime[100002]={0};
void sieve(){
for(int i=2;i<=10000;i++)
{
for(int j=2*i;j<=10000;j+=i)
{
prime[j]=1;
}
}
}
int32_t main(){
BOLT;
memset(a,0,sizeof(a));
sieve();
int n;
prime[1]=1;
cin>>n;
int a[n],sum=1;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(!prime[a[i]])
sum=sum*(a[i]+1);
}
cout<<sum-1<<endl;
}