Zball in Tina Town
2015-08-15 22:12
411 查看
Zball in Tina Town
Accepts: 397
Submissions: 2463
Time Limit: 3000/1500 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。 Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大11倍。在第二天的时候,它会变大22倍。在第nn天的时候,它会变大nn倍。 zball原来的体积是11。Tina想知道,zball在第n-1n−1天时的体积对nn取模是多大呢? Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
输入描述
第一行一个正整数TT,表示数据组数 接下来TT行,每行一个正整数nn,意义如题面所述 T \leq 10^5,2 \leq n \leq 10^9T≤105,2≤n≤109
输出描述
对于每组数据,输出一个正整数,表示答案。
输入样例
2 3 10
输出样例
2 0
思路:
这题一开始就知道是(n-1)!/n了,但是数据太大,不能打表。所以只能直接去判断是否素数了。一开始不知到是与素数有关的。之后对1-123打表就看出规律了。
打表代码:
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; typedef long long ll; ll db(int n) { int i; ll j=1; for(i=2;i<n;++i) { j*=i; j%=n; } return j; } int main() { ll n,m,i,j,k; for(m=2;m<123;++m) printf("m=%lld %lld\n",m,db(m)); return 0; }
AC代码:
#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; typedef long long ll; bool isprime(int num) { if(num==2||num==3) return true; if(num%6!=1&&num%6!=5) return false; for(int i=5;i*i<=num;i+=6) { if(num%i==0||num%(i+2)==0) return false; } return true; } int main() { /*freopen("input.txt","r",stdin);*/ int n,m; scanf("%d",&n); while(n--) { scanf("%d",&m); if(m==2){printf("1\n");continue;} if(m==3||m==4){printf("2\n");continue;} if(m==5){printf("4\n");continue;} if(isprime(m)) printf("%d\n",m-1); else printf("0\n"); } return 0; }
先对1-100000的素数选出来,再进行对大于100000的在原有的素数中筛选出来,判断是否素数。
优秀代码:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define mod 258280327 #define ll long long int prime[100000]={2}; int cnt; bool is_prime(int k){ for(int i=0;prime[i]*prime[i]<=k;i++){ if(k%prime[i]==0)return false; } return true; } int main(){ int t,n; cnt=1; for(int i=3;i<100000;i++){ if(is_prime(i)){ prime[cnt++]=i; } } //for(int i=0;i<30;i++)cout<<prime[i]<<endl; scanf("%d",&t); while(t--){ scanf("%d",&n); if(n==4){ printf("%d\n",2); } else if(is_prime(n)){ printf("%d\n",n-1); } else printf("0\n"); } return 0; }
相关文章推荐
- Rikka with Graph
- Victor and Machine
- Service
- 多线程异步加载图片async_pictures
- 五、MongoDB的索引
- NOIP2010-普及组复赛模拟试题-第二题-数字积木
- 编写高质量代码改善C#程序的157个建议——建议45:为泛型类型参数指定逆变
- POJ 2251 Dungeon Master
- Android Layout Resource分析
- 二叉搜索树(Binary Search Tree)的查找
- Partition List
- 杭州电子科技大学acm---2007
- Handler
- HDU 1005.Number Sequence【很多问题是不能直接求的】【8月15】
- POJ 2013 Symmetric Order
- 程序是怎么运行的-总结于《程序是怎么跑起来的》
- linux command intro2 vi
- POJ 1321 棋盘问题
- 黑马程序员-Java高级:反射
- 转置位矩阵