/*
* 求1/i的循环节长度的最大值,i<=n
*/ const int MAXN = ; int res[MAXN]; // 循环节长度 int main()
{
memset(res, , sizeof(res)); int i, temp, j, n; for (temp = ; temp <= ; temp++)
{
i = temp;
while (i % == )
{
i /= ;
}
while (i % == )
{
i /= ;
}
n = ;
for (j = ; j <= i; j++)
{
n *= ;
n %= i;
if (n == )
{
res[temp] = j;
break;
}
}
} int max_re; while (cin >> n)
{
max_re = ;
for (i = ; i <= n; i++)
{
if (res[i] > res[max_re])
{
max_re = i;
}
}
cout << max_re << endl;
}
return ;
}

原文:链接1

原文:链接2

简单来说就是,一个整数的倒数的循环节,就是求10x≡1(mod n)10x≡1(mod n),很明显,如果gcd(10,n)≠1gcd(10,n)≠1的话,就无解。如果存在解的话,根据欧拉公式,那么这个解 x|phi(n)x|phi(n),所以直接暴力枚举xx就好了。

#include <bits/stdc++.h>
using namespace std; int phi(int m) {
int ans = m;
for(int i=; i*i<=m; i++) {
if(m%i==) {
ans = ans / i * (i - );
while(m%i==) m /= i;
}
}
if(m>) ans = ans / m * (m - );
return ans;
}
int fp(int a, int n, int p) {
int r = ;
while(n) {
if(n&) r = r * a % p;
a = a * a % p;
n >>= ;
}
return r;
}
int main() {
int n;
cin >> n;
int ans = , cnt = ;
for(int p=; p<=n; p++) if(__gcd(, p) == ) {
int phn = phi(p);
for(int i=; i<=phn; i++) {
if(phn%i == && fp(, i, p) == ) {
if(i>cnt) {
cnt = i;
ans = p;
}
break;
}
}
}
cout << ans << endl;
return ;
}

1/n循环节长度的更多相关文章

  1. HDU3977(斐波那契数列模n的循环节长度)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=3977 题意:求斐波那契数列模p的循环节长度,注意p最大是2*10^9,但是它的素因子小于10^6. 分析过 ...

  2. xdu_1077:循环节长度

    题意很简单,就是给出p,q,求p/q的循环节长度. 由循环小数的循环部分的值等于等比数列求和的值S,列公式得到最简分数分母的值.最终得10^x%q==1(其中q为经过modify之后的值).搞清这些之 ...

  3. xdoj--1077: (循环节长度)

    1077: 循环节长度 时间限制: 1 Sec  内存限制: 128 MB提交: 103  解决: 37[提交][状态][讨论版] 题目描述 数一有很多的有理数,然而有的是有限小数,如1/2=0.5, ...

  4. AC日记——计算循环节长度 51nod 1035

    最长的循环节 思路: 我们尝试一种最简单的方法,模拟: 如何模拟呢? 每个数,对它模k取余,如果它的余数没有出现过,就补0继续模: 所以,当一个余数出现两次时,当前的长度即为循环节长度: 来,上代码: ...

  5. java 循环节长度

    循环节长度 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153- 其循环节为[846153] 共有6位. 下面的方法,可以求出循环 ...

  6. java实现第六届蓝桥杯循环节长度

    循环节长度 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位. 下面的方法,可以 ...

  7. 蓝桥杯-循环节长度-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  8. Java求循环节长度

    两个整数做除法,有时会产生循环小数,其循环部分称为:循环节.比如,11/13=6=>0.846153846153.....  其循环节为[846153] 共有6位.下面的方法,可以求出循环节的长 ...

  9. ACM(数学问题)——UVa202:输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。

    主要思路: 通过模拟除法运算过程,来判断循环节结束的位置,不断将余数*10再对除数取余得到新的余数,并记录下来,知道出现的余数之前出现过,此时小数开始循环. 例如: 假设   ->     a ...

随机推荐

  1. NOIP2016 D1T1 玩具谜题

    洛谷P1563 看完了noip2017觉得noip2016是真的简单……2017第一题就卡住2016第一题10分钟AC 思路: m<=100000很明显暴力模拟就可以 唯一有一点点难度的地方就是 ...

  2. CSS3画菱形和平行四边形以及立方体

    利用CSS3中的transform属性画菱形和平行四边形 transform 实现2D或是3D的变形转换,通过transform可以实现对元素的四种变换:旋转.缩放.移动.倾斜 一.菱形 菱形的特点: ...

  3. js+php大文件分片上传

    1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...

  4. WEB超大文件上传与下载

    1.介绍enctype enctype 属性规定发送到服务器之前应该如何对表单数据进行编码. enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样) 1. ...

  5. 软件安装——internal error2503/2502

    安装新的软件后先报internal error 2503,随后报internal error 2502.就是不让我装新的软件,提示说发生严重错误,然后安装失败. Solution for intern ...

  6. 【bzoj3162】独钓寒江雪

    *题目描述: *题解: 树哈希+组合数学.对于树的形态相同的子树就一起考虑. *代码: #include <cstdio> #include <cstring> #includ ...

  7. 支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)

    概述:在对支持向量机的学习和使用过程中,遇到了许许多多的问题,通过查阅各种资料,也是逐一攻克了遇到的问题.感悟颇多,写此博文的目的是想以一个学习者的身份从一个刚接触支持向量机的角度去记录模型推到过程中 ...

  8. Essential Java.《Java 编程要点》

    Essential Java.<Java 编程要点> Essential Java, is a book about the Essentials of Java Programming. ...

  9. Json ignore on class level

    Exclude all instances of a class from serialization in Newtonsoft.Json Every custom type can opt how ...

  10. MyBatis逆向工程去除表名前缀

    https://www.jianshu.com/p/e09d2370b796 https://blog.csdn.net/baidu_16757561/article/details/75071476 ...