#include <bits/stdc++.h>
using namespace std;
long long a[1005];
map<long long, int> mp;
int main() {
  int n;
  long long sum = 0, maxx = 2, mx = -1;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%I64d", &a[i]);
    mx = max(mx, a[i]);
    if (a[i] == 0) sum++;
    mp[a[i]]++;
  }
  maxx = max(maxx, sum);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (i == j) continue;
      if (a[i] == 0 && a[j] == 0) continue;
      sum = 2;
      long long x = a[i], y = a[j];
      vector<long long> t;
      t.clear();
      t.push_back(x);
      t.push_back(y);
      mp[x]--;
      mp[y]--;
      while (x + y <= mx && mp[x + y] > 0) {
        long long tmp = x + y;
        mp[tmp]--;
        t.push_back(tmp);
        x = y;
        y = tmp;
        sum++;
      }
      maxx = max(maxx, sum);
      for (int k = 0; k < t.size(); k++) mp[t[k]]++;
    }
  }
  printf("%I64d\n", maxx);
  return 0;
}
