Problem Description

LB是个十分喜欢钻研的人,对什么事都要搞明白。有一天他学习到了阶乘,他十分喜欢,所以他在想一个问题。如果给定一个数n,求n!能不能被2016整除。LB算了好久都没有算出来,所以他向你求助,你能不能帮他解决这个问题呢?

Input

第一行只包含一个整数T(T≤1000),表示测试用例的个数。
对于每个测试用例,第一行只包含一个整数N(0≤N≤10000),N如描述所示。

Output

对于每个测试用例,输出一行,如果N!能被2016整除输出"YES"(不带引号),如果不能输出"NO"(不带引号)。

Sample Input

1
2016

Sample Output

YES

Author

zhengjinke2123
当然这里并没有那么麻烦
#include<stdio.h>
#include<string.h> struct node
{
long p;
long n;
node()
{
n=0;
}
};
long prime[50000];
bool flag[50000];
node stc[1000];
long num1=0,num2; void init()
{
unsigned long i,j;
memset(flag,0,sizeof(flag));
for(i=2; i<50000; i++)
{
if(!flag[i])
{
prime[num1++]=i;
for(j=i*i; j<50000; j=j+i)
flag[j]=true;
}
}
} void devide(long m)
{
long i;
num2=0;
for(i=0; prime[i]*prime[i]<=m; i++)
{
if(m%prime[i]==0)
{
stc[num2].p=prime[i];
stc[num2].n++;
m=m/prime[i];
while(m%prime[i]==0)
{
stc[num2].n++;
m=m/prime[i];
}
num2++;
}
if(m==1)
break;
}
if(m>1)
{
stc[num2].p=m;
stc[num2].n++;
num2++;
}
} bool judge(long n,long m)
{
long i,sum,temp;
for(i=num2-1; i>=0; i--)
{
sum=0;
temp=stc[i].p;
while(n>=temp)
{
sum=sum+n/temp;
temp=temp*stc[i].p;
}
if(sum<stc[i].n)
return false;
}
return true;
} int main()
{
long n,m,i;
init();
int t;
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d",&n);
m=2016;
for(i=0; i<1000; i++)
stc[i].n=0;
if(n<=1&&m>1)
{
puts("NO");
continue;
}
if(m==0)
{
puts("NO");
continue;
}
if(n>=m)
{
puts("YES");
continue;
}
devide(m);
if(judge(n,m))
{
puts("YES");
}
else
{
puts("NO");
}
}
}
return 0;
}

  

华东交通大学2016年ACM“双基”程序设计竞赛 1010的更多相关文章

  1. 华东交通大学2016年ACM“双基”程序设计竞赛 1007

    Problem Description ACM小学妹在今天的暑假训练结束后,想看球赛放松一下.当他打开电脑时查询到联盟今天直播N场球赛,每场球赛的起止时间(S1,E1),(S2,E2),...,(SN ...

  2. 华东交通大学2016年ACM“双基”程序设计竞赛 1001

    Problem Description 输入一个非负的int型整数,是奇数的话输出"ECJTU",是偶数则输出"ACM". Input 多组数据,每组数据输入一 ...

  3. 华东交通大学2016年ACM“双基”程序设计竞赛 1008

    Problem Description halfyarn找你写个简单的题?好哒!给你n个整数,现在要求你选择两个位置的数,例如选择第pos_a个数a,和第pos_b个数b,给定ans=min(a,b) ...

  4. 华东交通大学2016年ACM“双基”程序设计竞赛 1005

    Problem Description 最近侯ry感觉自己在数学方面的造诣不忍直视:他发现他的学习速率呈一个指数函数递增,疯狂的陷入学习的泥潭,无法自拔:他的队友发现了他的学习速率y=e^(b*lna ...

  5. 华东交通大学2016年ACM“双基”程序设计竞赛 1004

    Problem Description LB是个十分喜欢钻研的人,对什么事都要搞明白.有一天他看到一个公式,((a-b)*c+d*e)/f=k.他想如果给定K的值,一共有多少种不同整数的组合(a,b, ...

  6. 华东交通大学2016年ACM“双基”程序设计竞赛 1009

    Problem Description 华盛顿在寝室洗衣服,遭到了xyf的嫌弃,于是xyf出了道题给华盛顿来做(然而并没有什么关系-v-!)xyf扔给华盛顿n个字符串,这些字符串的长度不超过10000 ...

  7. 华东交通大学2016年ACM“双基”程序设计竞赛 1003

    Problem Description 风雨漂泊异乡路, 浮萍凄清落叶飞. 游子寻根满愁绪,一朝故土热泪归.Hey ecjtuer! 刚刚学习了二叉树的知识,现在来考察一下..给你一个深度为h的满二叉 ...

  8. 华东交通大学2016年ACM“双基”程序设计竞赛 1002

    Problem Description 今天小学弟又训练完了,但是小学弟又不想看球赛,于是小学弟看马赛了.他发现马鞍是一个奇怪的东西.于是小学弟根据马鞍定义了一种马鞍数:在一个二位矩阵中,马鞍数在当前 ...

  9. 华东交通大学2017年ACM“双基”程序设计竞赛 1010

    Problem Description 定义操作:将数 n 变为 f(n) = floor(sqrt(n)).即对一个数开平方后,再向下取整.如对 2 进行一次操作,开平方再向下取整, 1.41421 ...

随机推荐

  1. javascript创建对象的方法总结

    Javascript创建对象 最简单的方法:创建object实例. var person=new Object(); person.name="Joey";person.age=2 ...

  2. [转]有哪些值得关注的技术博客(Java篇)

    有哪些值得关注的技术博客(Java篇)   大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1. ...

  3. shell学习笔记(2)替换命令··与()的区别

    ·CMD·在执行的时候,shell不管··中的内容是什么,先进性解释,再把解释后的最终结果送给shell,如果解释后的结果不是shell可以行的命令,就会报错.但是仅仅把cmd的执行结果作为文本输出, ...

  4. C++之路进阶——codevs4655(序列终结者)

    4655 序列终结者  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master      题目描述 Description 网上有许多题,就是给定一个序列,要你支持几 ...

  5. Spark K-Means

    K-Means(K均值) 介绍 K-Means是被应用的最广泛的基于划分的聚类算法,是一种硬聚类算法,属于典型的局域原型的目标函数聚类的代表.算法首先随机选择k个对象,每个对象初始地代表一个簇的平均值 ...

  6. -XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息

    -XX:+PrintHeapAtGC每次一次GC后,都打印堆信息 {Heap before GC invocations=0 (full 0): def new generation   total ...

  7. BaseAction的一般写法

    package com.mi.action; import java.util.Map; import javax.servlet.http.HttpServletRequest; import ja ...

  8. zw版【转发·台湾nvp系列Delphi例程】HALCON Component Histogram

    zw版[转发·台湾nvp系列Delphi例程]HALCON Component Histogram unit Unit1;interfaceuses Windows, Messages, SysUti ...

  9. zw版【转发·台湾nvp系列Delphi例程】HALCON AffineTransImage

    zw版[转发·台湾nvp系列Delphi例程]HALCON AffineTransImage unit Unit1;interfaceuses Windows, Messages, SysUtils, ...

  10. 利用curl并发来提高页面访问速度

    在我们平时的程序中难免出现同时访问几个接口的情况,平时我们用curl进行访问的时候,一般都是单个.顺序访问,假如有3个接口,每个接口耗时500毫 秒那么我们三个接口就要花费1500毫秒了,这个问题太头 ...