杭电2674

来源:互联网 发布:cpi数据分析 编辑:程序博客网 时间:2024/06/05 05:48

简单题,就是求(N!)2009;

2009之前的直接f(n)=(n*f(n-1))%2009;即n的阶乘取余=各因子取余再求积;

2009之后n=n*(n-1)*.....*2009*2008*.....*1%2009=(n%2009) *.....(2009%2009)*(2008%2009)*.....=0*(.....)=0;

即2009之后的都有2009这个因子,2009%2009=0,0乘以任何数=0;所以2009以后都是0;



#include<stdio.h>int main(){__int64 n,i,s;while(scanf("%I64d",&n)!=EOF){if(n>=2009)printf("0\n");else{for(i=s=1;i<=n;i++)s=(s*(i%2009))%2009;printf("%I64d\n",s);}}return 0;}


原创粉丝点击