题目链接:http://acm.nefu.edu.cn/JudgeOnline/problem/115.jsp
思路:找循环节,可以被3整除的Fibonacci数,n一定可以被4整除,可以被4整除的Fibonacci数,n一定可以被6整除,同样,如果Fibonacci可以被12整除,根据数论知识,知道n一定可以被12整除。
#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include <string> using namespace std; typedef long long LL; LL n; void solve() { if(n % 12 == 0) printf("YES\n"); else if(n % 4 == 0) printf("3\n"); else if(n % 6 == 0) printf("4\n"); else printf("NO\n"); } int main() { while(~scanf("%lld", &n)) { solve(); } return 0; }