HDU 5391-Zball in Tina Town(数论)
2015-08-16 18:56
288 查看
题目地址:HDU 5391
题意:
Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大11倍。在第二天的时候,它会变大22倍。在第nn天的时候,它会变大nn倍。zball原来的体积是11。Tina想知道,zball在第n-1n−1天时的体积对nn取模是多大呢?Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
思路:这题就是求 n(n−1)! % n。如果n为合数,显然答案为0.如果n为素数,那么由威尔逊定理可得答案为 n-1。注意特判一下n=4的情况,输出的是2.
题意:
Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大11倍。在第二天的时候,它会变大22倍。在第nn天的时候,它会变大nn倍。zball原来的体积是11。Tina想知道,zball在第n-1n−1天时的体积对nn取模是多大呢?Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
思路:这题就是求 n(n−1)! % n。如果n为合数,显然答案为0.如果n为素数,那么由威尔逊定理可得答案为 n-1。注意特判一下n=4的情况,输出的是2.
#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <set> #include <queue> #include <stack> #include <map> #pragma comment(linker, "/STACK:102400000,102400000") using namespace std; typedef __int64 LL; const int inf=0x3f3f3f3f; const double pi= acos(-1.0); const double esp=1e-7; int main() { int T,n,i; scanf("%d",&T); while(T--) { scanf("%d",&n); if(n==4) { puts("2"); continue; } int flag=0; int m=sqrt(n-1); for(i=2; i<=m; i++) if(n%i==0) { flag=1; break; } if(!flag) printf("%d\n",n-1); else printf("0\n"); } return 0; }
相关文章推荐
- MQTT初步使用
- LeetCode || Minimum Path Sum 动态规划思想
- MongoDB(两)mongoDB基本介绍
- Git 本身不支持对某一特定文件夹或者子目录的权限控制,但是可以通过子模块的形式间接实现
- 获取指定目录下的文件
- IOS属性字符串
- Web_reg_find()函数的使用
- light oj1074
- [人月神话]读书笔记6--永恒的变化&&开发工具效用
- HDU-5344
- 我的linux分区方案
- 【转】如何给Ubuntu添加Windows及Mac字体?
- join sleep yield
- 如何解决ubuntu下Chromium 新建的应用快捷方式图标模糊的问题
- linux下的输出重定向和快捷键
- 字符串匹配算法---KMP算法
- 【转】解决Ubuntu下Sublime Text 3无法输入中文
- Java中E、T、K、V、N的含义
- Java神奇的装箱与拆箱
- 解决ubuntu中JDK的Picked up JAVA_TOOL_OPTIONS提示问题。