HOJ12186求N!%N^2
来源:互联网 发布:下载百度一下软件 编辑:程序博客网 时间:2024/05/16 12:00
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<iostream>
using namespace std;
__int64 ans,n,m;
int vis;
__int64 lcm(int x ,int y)
{
int ex,a,b;
a = max(x,y);
b = min(x,y);
while(b != 0)
{
ex = a%b;
a = b;
b = ex;
}
return a;
}
int main()
{
while(scanf("%I64d",&n) != EOF)
{
if(n == 1)printf("YES\n");
if(n == 4)printf("NO\n");
if(n != 1 && n != 4)
{
for(int i = 2 ; i <= sqrt(n) ; i++)
{
if(n % i == 0)
{
vis = 1;
break;
}
}
if(vis == 1)printf("YES\n");
else printf("NO\n");
}
}
}
如果用公式精度不行,如果直接算时间不行不说,也没这么大的整型来表示,N!%N^2是否为0,其实就是(N-1)!%N,那么,易知,如果N为非素数,则必然可以找到一个1---N-1的来可以除以N-1,得到的结果在1-N-1中也能够找到,所以必然成立,当N为素数的时候,根据素数的性质,在2-N-1中必然没有数可以被N整除.
这样一来,这个题目就可以转化成求N是不是素数的题目了.当然,对于N=4和N=1的时候要特殊处理
- HOJ12186求N!%N^2
- LightOJ 1245 求(n/1+n/2+...+n/n)
- 求1! + 2! +...+n!
- 求1!+2!+....n!
- 求 1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+。。。+n
- 求1+2+....+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+...+n
- 求1+2+....+n
- error LNK2001: unresolved external symbol _main解决办法(zz)
- 使用target_system进行erlang应用的发行
- android里在程序中修改listView里的内容
- 对目前公司用到的框架做个总结
- vs2005中发送邮件
- HOJ12186求N!%N^2
- 【转】给学程序初学者的一些忠告(忘了从哪里弄来的了)
- erlang使用Tips
- Visual C++中函数调用方式浅探
- linux操作系统修改共享内存的简单方法
- 木牛流马PLC
- jQuery 学习笔记(三)——jQuery效果
- svn: Can't find a temporary directory 问题解决
- error while loading shared libraries的解決方法