Mọi người cho mình hỏi đoạn code này đã đúng và tối ưu chưa ạ ?
#include<bits/stdc++.h>
using namespace std;
bool fb(int n)
{int f0=1;
int f1=1;
int fn=0;
if(n<=1) return false;
while(fn<=n)
{fn=f0+f1;
f0=f1;
f1=fn;
if(fn==n) return true;
}
return false;
}
bool snt(int x)
{if (x<2) return false;
else if (x==2) return true;
else if (x%2==0) return false;
for (int i=3;i<=sqrt(x);i+=2)
{if (x%i==0) return false;
}
return true;
}
int fibosnt(int a[], int n)
{int max=0;
for (int i=0;i<n;i++)
{if (fb(i)==true && snt(i)==true)
{if (max<i) max=i;
}
}
return max;
}
int main()
{freopen("fibo.inp","r",stdin);
freopen("fibo.out","w",stdout);
int n,a[100];
cout<<"nhap n:"; cin>>n;
cout<<fibosnt(a,n);
return 0;
}