#include <bits/stdc++.h>
using namespace std;
long long aaa[10000 + 10];
long long c[1000 + 10];
long long cnt;
long long n;
int main() {
  scanf("%I64d", &n);
  long long summ = 0;
  for (long long i = 1; i <= n; i++) {
    scanf("%I64d", &aaa[i]);
    if (aaa[i] == 0) summ += 1;
  }
  sort(aaa + 1, aaa + (n + 1));
  long long max = 0;
  for (long long i = 1; i <= n; i++) {
    for (long long q = 1; q <= n; q++) {
      if (i == q || aaa[i] == 0 && aaa[q] == 0) continue;
      memset(c, 0, sizeof(c));
      c[lower_bound(aaa + 1, aaa + (n + 1), aaa[i]) - (aaa)] += 1;
      c[lower_bound(aaa + 1, aaa + (n + 1), aaa[q]) - (aaa)] += 1;
      int sum = 2;
      long long aa = aaa[i];
      long long bb = aaa[q];
      for (;;) {
        long long a1 = upper_bound(aaa + 1, aaa + (n + 1), aa + bb) - (aaa);
        long long a2 = lower_bound(aaa + 1, aaa + (n + 1), aa + bb) - (aaa);
        if (aaa[a2] != aa + bb || c[a2] >= a1 - a2) break;
        c[a2] += 1;
        long long cc = aa;
        aa = bb, bb += cc;
        sum += 1;
      }
      if (sum > max) max = sum;
    }
  }
  if (summ > max) max = summ;
  printf("%I64d\n", max);
}
