#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;

bool isPrime(ll x){
  if(x<2)return false;
  for(ll i=2;i*i<=x;i++)
    if(x%i==0)return false;
  return true;
}

int n;
ll a[100005];
ll dp[100005][2];

int main(){
  cin>>n;
  for(int i=1;i<=n;i++)cin>>a[i];
  
  dp[0][0]=1;

  for(int i=1;i<=n;i++){
    
    if( isPrime(a[i]) ){
      if(a[i] > a[i-1] &&i-1>=0){
        dp[i][0]+=dp[i-1][0];
      }
      if(a[i] > a[i-2] &&i-2>=0){
        dp[i][0]+=dp[i-1][1];
      }
    }

    if( isPrime(a[i-1]) &&i-1>=0 ){
      if( a[i-1] > a[i-2] &&i-2>=0){
        dp[i][1]+=dp[i-2][0];
      }
      if( a[i-1] > a[i-3] &&i-3>=0){
        dp[i][1]+=dp[i-2][1];
      }
    }

    dp[i][0]%=mod;
    dp[i][1]%=mod;
  }
  
  cout<< (dp[n][0]+dp[n][1])   % mod <<endl;
  return 0;
}

