背景
Zhang Gangrui 年纪大了,记性不好,保险箱的密码记不住了,他只记得密码是一个数的阶乘各个位的数相加的和,最后还有个T或F,
代表这个数是否为素数,正好,你到他家去了,他请你帮他这个忙,并答应事成之后给你100000000 MOD 10 RMB。
描述
输入一个整数n(1000>=n>=0)
输出n的阶乘各个位的数相加的和y,最后再输出T或F,
代表y是否为素数。
格式
输入格式
输入一个整数n(1000>=n>=0)
输出格式
输出n的阶乘各个位的数相加的和y,最后再输出对y是否为素数的判断,
是为T否为F。
样例1
样例输入1
10
样例输出1
27F
限制
各个测试点1s
高精
#include <cstdio> int str[10005]; int jw,n,k=2,ans; char judge(int a) { for(int i=2;i*i<=a;i++) if(a%i==0) return 'F'; return 'T'; } int main() { scanf("%d",&n); str[1]=1;int len=1; while(k<=n) { for(int i=1;i<=len;i++) { str[i]*=k; str[i]+=jw; if(str[i]>=10) { jw=str[i]/10; str[i]%=10; len=len>i+1?len:i+1; } else jw=0; } k++; jw=0; } for(int i=1;i<=len;i++) ans+=str[i]; printf("%d%c",ans,judge(ans)); return 0; }