#include <bits/stdc++.h>
using namespace std;
long long n, ans, cnt0;
long long a[10010], b[10010], cntb;
map<long long, int> mp;
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &a[i]);
    mp[a[i]]++;
    if (!a[i]) cnt0++;
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (a[i] == 0 && a[j] == 0) {
        ans = max(ans, cnt0);
        continue;
      }
      if (i != j) {
        cntb = 0;
        long long x = a[i], y = a[j], z;
        mp[x]--;
        mp[y]--;
        b[++cntb] = x;
        b[++cntb] = y;
        long long k = 2;
        while (mp[x + y] > 0) {
          mp[x + y]--;
          long long t = x + y;
          x = y;
          y = t;
          b[++cntb] = t;
          k++;
        }
        ans = max(ans, k);
        for (int p = 1; p <= cntb; p++) {
          mp[b[p]]++;
        }
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
