设3|f(k),由于f(k+4)=3f(k+1)+2f(k),所以f(k+4)能被3整除,由归纳法可证f(4k)能被3整除。
对于f(6k)能被3整除,同理可证。
简单推导知,若12|f(n),则12|n。
/*
斐波那契的整除
输入n,表示第几个数,如果f(n)能被3整除,输出3,能被f(4)整除,输出4
如果能被12整除输出YES ,否则输出NO
*/
#include<iostream>
#include<map>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n%12==0)
cout<<"YES"<<endl;
else
{
if(n%4==0)
cout<<"3"<<endl;
else if(n%6==0)
cout<<"4"<<endl;
else cout<<"NO"<<endl;
}
}
return 0;
}