gfoj测试题
来源:互联网 发布:node 构建项目 编辑:程序博客网 时间:2024/06/04 17:42
题目:http://www.gdfzoj.com/oj/contest/256/problems/1
啊啊啊啊啊啊考虑漏了情况。。。
以后除了要用小数据去观察,还要用中等数据实验
code:
#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>using namespace std;const int maxSize=10000000;long long n,q,len,num=0,num1=0;bool sss[maxSize+5];int su[maxSize/2],ol[maxSize/2];int gcd(int x,int y)//最大公约数 {if (y!=0)return gcd(y,x%y);elsereturn x;}void shai(int x)//素数筛 {int i,j;for (i=2;i<=x;i++){if (sss[i]==true)su[num++]=i;for (j=0;j<num;j++){if (su[j]*i>x)break;sss[su[j]*i]=false;if (i%su[j]==0)break;}}}int oula(int x)//求长度 {int i,ans=x;if (sss[x]==true)return x-1;for (i=0;i<num;i++){if (su[i]>ceil(sqrt(x)))break;if (ans%su[i]==0)ans=(ans/su[i])*(su[i]-1);}return ans;}long long ksm(long long x,int y)//快速幂 {long long ans;if (y==0)return 1;if (y==1)return x;ans=ksm(x,y/2)%n;if (y%2==0)return (ans*ans)%n;elsereturn (((ans*ans)%n)*x)%n;}void zys(int x)//质因数 {int i;for (i=0;i<num;i++)if (x%su[i]==0)ol[num1++]=su[i];}int main(){long long i,a,j;freopen("a.txt","r",stdin);freopen("b,txt","w",stdout);scanf("%d%d",&n,&q);memset(sss,true,sizeof(sss));shai(n);len=oula(n);zys(len);for (i=0;i<q;i++){scanf("%lld",&a);if (gcd(n,a)!=1 || a<=1){printf("0");continue;}for (j=0;j<num1;j++)//循环质因数{if (ksm(a,len/ol[j])==1)//是除!!!{printf("0");break;}}if (j==num1 && ksm(a,len)==1)printf("1");else if (j==num1)printf("0");//if (j==num1)//printf("1");}return 0;}
阅读全文
0 0
- gfoj测试题
- gfoj 792 求和
- 【gfoj】Problem#787: 密室逃脱
- GFOJ problem64 新年组队 解题报告
- GFOJ Problem 468: 出去玩 LCA
- GFOJ problem468 出去玩 解题报告
- 【二分+hash】【manacher】【gfoj】Problem 852: antisymmetry
- GFOJ problem 470: [HbFS-]Red is good 解题报告
- [测试]测试题
- 测试题
- 测试题
- 测试题
- 测试题
- 测试题
- 测试题
- 测试题
- 测试题
- 测试题
- Location服务之Geocoder
- Python 中的串行执行 并发执行 同步异步
- mysql cluster数据库集群配置
- SpringMVC连接SqlServer版本问题
- python中self和cls的区别
- gfoj测试题
- 晋升为CSDN博客专家
- 2017秋招总结
- NDK_PROJECT_PATH = null
- Python如何实现两个服务器之间文件的上传
- QT之qss教程-QTabWidget
- 调整数组顺序使奇数位于偶数前面
- WebView爬坑之旅3--H5中选择本地文件
- 【C#】MemoryStream