题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=115
解题思路:因为直接算的话肯定会溢出,所以考虑是否有规律,发现,f(n)能被3整除当且仅当n能被4整除的时候,f(n)能被4整除的时候当且仅当n能被6整除的时候,
f(n)能被12整除的时候当且仅当n能被12整除的时候(12为4和6的最大公因数)
#include<stdio.h> int main() { long int n; while(scanf("%d",&n)!=EOF) { if(n%12==0) { printf("YES "); } else if(n%6==0) { printf("4 "); } else if(n%4==0) { printf("3 "); } else printf("NO "); } }