#include <bits/stdc++.h>   using namespace std;   int n;   long long a[1010];   long long ans;   long long vis[1010];   map<long long, long long> mp;   void dfs(long long x, long long y, long long cnt) {     ans = max(cnt, ans);     if (mp[x + y]) {       mp[x + y]--;       dfs(y, x + y, cnt + 1);       mp[x + y]++;     }   }   int main() {     while (cin >> n) {       for (int i = 1; i <= n; i++) cin >> a[i];       for (int i = 1; i <= n; i++) mp[a[i]]++;       long long kk = 0;       for (int i = 1; i <= n; i++)         if (a[i] == 0) kk++;       ans = 0;       for (int i = 0; i <= n; i++) vis[i] = 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, kk);               continue;             }             mp[a[i]]--;             mp[a[j]]--;             dfs(a[i], a[j], 2);             mp[a[i]]++, mp[a[j]]++;           }         }       }       cout << ans << endl;     }     return 0;   }   