【题目描述】

Bike是一位机智的少年,非常喜欢数学。他受到142857的启发,发明了一种叫做“循环数”的数。

如你所见,142857是一个神奇的数字,因为它的所有循环排列能由它乘以1,2,...,6(1到它的长度)得到。循环排列意味着将该数的一些数位从尾部挪到前面。例如,12345的循环排列包括:12345,51234,45123,34512,23451.值得一提的是,允许出现前导零。因此4500123和0123450都是0012345的循环排列。你可以看到142857满足条件的原因。以下六个等式是在十进制下的。

·142857*1=142857

·142857*2=285714

·142857*3=428571

·142857*4=571428

·142857*5=714285

·142857*6=857142

现在Bike有一个问题。他将“循环数”扩展到任意进制b。如前所述,142857是十进制下的循环数。另一个例子是二进制下的0011.以下四个等式是二进制的:

·0011*1=0011

·0011*10=0110

·0011*11=1001

·0011*100=1100

他想要找出最大的b(1<b<x)使得有一个b进制下长度为n的正循环数(允许前导零)。

注意,当你将循环数乘以1到其长度的任意整数时你都应该得到一个它的循环排列。

【题解】

传送门:http://blog.csdn.net/wmdcstdio/article/details/45042353?locationNum=7

%%%%%%%%%%%%王梦迪大神

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 #include<cstring>
 5 #include<ctime>
 6 #include<cmath>
 7 #include<algorithm>
 8 using namespace std;
 9 #define MAXN 5000010
10 #define FILE "read"
11 typedef long long ll;
12 ll n,x,cnt,len,pr[MAXN],prime[MAXN],isprime[MAXN];
13 ll gcd(ll a,ll b) {return !b?a:gcd(b,a%b);}
14 ll fast(ll a,ll b,ll mod) {ll sum=1;for(;b;b>>=1,a=a*a%mod)if(b&1)sum=sum*a%mod;return sum;}
15 inline ll read()
16 {
17     ll x=0,f=1;  char ch=getchar();
18     while(!isdigit(ch))  {if(ch=='-')  f=-1;  ch=getchar();}
19     while(isdigit(ch))  {x=x*10+ch-'0';  ch=getchar();}
20     return x*f;
21 }
22 void get()
23 {
24     for(ll i=2;i<=MAXN-10;i++)
25     {
26         if(!isprime[i])  prime[++cnt]=i;
27         for(ll j=1;j<=cnt&&prime[j]*i<=MAXN-10;j++)
28         {
29             isprime[prime[j]*i]=1;
30             if(i%prime[j]==0)  break;
31         }
32     }
33 }
34 void pre(ll p)
35 {
36     ll temp=p-1;
37     for(ll i=1;i<=cnt;i++)
38     {
39         if(temp%prime[i]==0)  pr[++len]=prime[i];
40         while(temp%prime[i]==0)  temp/=prime[i];
41     }
42     if(temp>1)  pr[++len]=temp;
43 }
44 bool check(ll d,ll p)
45 {
46     if(gcd(p,d)!=1)  return 0;
47     for(ll i=1;i<=len;i++)  if(fast(d,(p-1)/(pr[i]),p)==1)  return 0;
48     return 1;
49 }
50 int main()
51 {
52     freopen(FILE".in","r",stdin);
53     freopen(FILE".out","w",stdout);
54     n=read();  x=read();
55     get();
56     if(isprime[n+1])  {printf("-1\n");  return 0;}
57     pre(n+1);
58     for(ll i=x-1;i>1;i--)  if(check(i,n+1))  {printf("%I64d\n",i); return 0;}
59     printf("-1\n");
60     return 0;
61 }

转载于:https://www.cnblogs.com/chty/p/6052322.html

【CF#303D】Rotatable Number相关推荐

  1. 【CF 617E】 XOR and Favorite Number (Mo's algorithm)

    [CF 617E]  XOR and Favorite Number (Mo's algorithm) E. XOR and Favorite Number time limit per test 4 ...

  2. 【CF 149D】Coloring Brackets(dp)

    [CF 149D]Coloring Brackets(dp) D. Coloring Brackets time limit per test 2 seconds memory limit per t ...

  3. 【CF 520D】Cubes

    [CF 520D]Cubes 怎么说呢--英语阅读题+超级大模拟-- 最重要的是知道怎么出来的数据...题意好懂 xy坐标内给出几个单位正方形 以正方形左下点坐标给出 y=0为地面 正方形下面或者左右 ...

  4. 【CF 732E】Sockets(优先队列+贪心)

    [CF 732E]Sockets(优先队列+贪心) 题目大意: n台电脑,m个供电器. 每台电脑和每个供电器都有电量,当电脑i的电量和供电器j电量相同时,可以连接供电. 现在提供变压器,可以连接到供电 ...

  5. 【CF 450A】 Jzzhu and Children

    [CF 450A] Jzzhu and Children 发糖 n个小盆(屁)友(孩) 站好队 第i个人想要ai颗糖 但坏叔蜀一个人一次只发m个糖 还想要就要到队尾排队 领够糖的就走开 问最后走的小朋 ...

  6. *【CF#633B】 A Trivial Problem(二分或枚举)

    题干: Mr. Santa asks all the great programmers of the world to solve a trivial problem. He gives them ...

  7. 【CF#715C】Digit Tree 点分治+乘法逆元

    AC通道:http://codeforces.com/problemset/problem/715/C [题目大意] 给定一个有N个点的树,问其中有多少条路径满足他们的边权连成的数对M取余为0. 其中 ...

  8. 【CF 463F】Escape Through Leaf

    题意 给你一棵 \(n\) 个点的树,每个节点有两个权值 \(a_i,b_i\). 从一个点 \(u\) 可以跳到以其为根的子树内的任意一点 \(v\)(不能跳到 \(u\) 自己),代价是 \(a_ ...

  9. 【CF 1195】Basketball Exercise/Submarine in the Rybinsk Sea (hard edition)/OpenStreetMap+二维单调队列滑动窗口模板

    寡人认为C,E都是比较板的题 butD2也太ex了,大大是被那个mod精给弄疯了,我mod了那么多次还是炸了longlong orz 文章目录 二维单调队列模板 C:Basketball Exerci ...

最新文章

  1. Linux日常运维管理技巧(二)Linux防火墙:你可以ping别人,别人ping不了你、转发、代理
  2. (转)分布式文件存储FastDFS(二)FastDFS安装
  3. RedHat官方OpenShift Hands-on实验环境脚本
  4. Android Q Labs| Android Q 分区存储
  5. 【教程】PDF控件Spire.PDF 教程:在C#中检测PDF文件是否为PDF/A
  6. 你应该知道的,十二大CNN算法
  7. 安卓dj专业打碟机软件_学DJ打碟必备设备
  8. Ques核心思想——CSS Namespace
  9. 台式计算机摄像头插哪,台式电脑摄像头怎么调试
  10. 微信公众平台开发之微信红包的实现
  11. 车险杀手锏——高速大数据在车险定价中的应用
  12. 【数模】数据统计中的峰度与偏度
  13. 爬虫学习日记1-豆瓣top250电影信息爬取
  14. 中国计算机仿真行业全景调查与投资策略建议报告2022-2028年版
  15. Google Perftools简介与使用
  16. 笑一笑十年少,大家来笑笑吧
  17. PHP compact() 函数,好用!
  18. Elixir 学习笔记
  19. 好程序员web前端培训分享做H5页面需要学什么
  20. ASP调用存储过程中与SQL对应的数据类型

热门文章

  1. 苹果xr如何关机_苹果笔记本被禁止上飞机!存在燃烧爆炸风险
  2. 自定义 View | 画板
  3. 程序猿回到过去:红花会与布隆过滤器
  4. 【Vue案例】——实现简易购物车功能
  5. 蓝桥杯--常用EXCEL技巧总结
  6. ftp端口号20和21的区别是什么?
  7. crm使用soap删除下拉框
  8. 【云和恩墨大讲堂】Oracle RAC精讲之心跳机制
  9. Wannafly挑战赛13 B:Jxc军训(逆元)
  10. 听音识故障,人工智能“诊断”机器新形式