#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3 + 50;
int n, a[maxn], zero;
map<int, int> ha;
int dfs(int x, int y) {
  if (!ha.count(x + y) || ha[x + y] == 0) return 0;
  ha[x + y]--;
  int res = dfs(y, x + y);
  ha[x + y]++;
  return res + 1;
}
int main(int argc, char *argv[]) {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", a + i);
    ha[a[i]]++;
    if (a[i] == 0) zero++;
  }
  sort(a + 1, a + n + 1);
  int ans = 0;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= n; ++j) {
      if (i != j) {
        if (a[i] == 0 && a[j] == 0)
          ans = max(ans, zero);
        else {
          ha[a[i]]--, ha[a[j]]--;
          ans = max(ans, dfs(a[i], a[j]) + 2);
          ha[a[i]]++, ha[a[j]]++;
        }
      }
    }
  printf("%d\n", ans);
  return 0;
}
