题意:求1到n中所有数的倒数中循环小数循环体最长的数

解法:如果一个数的质因子只有2和5,那么这个数的倒数一定不是一个循环小数。如果一个数含有质因子2或5,那么它的循环体和去掉质因子2和5之后的数的循环体是一样长的,如3和6。对于一个质因子没有2和5的数,能被几个9组成的数整除它的循环体就有多长,如1 / 7 = 0.(142857),999999 / 7 = 142857。

对于这个例子我做了简单的证明:

因为1 / 7 = 0.(142857),所以1000000 / 7 = 142857.(142857) = 142857 + 0.(142857) = 142857 + 1 / 7

所以999999 / 7  = 142857

代码:

循环体比较长……用了Java大数

package pe0026;

import java.math.*;

public class main
{
public static void main(String[] args)
{
int maxn = 0, pos = 0;
for(int i = 2; i <= 1000; i++)
{
if(i % 2 == 0 || i % 5 == 0)
continue;
BigInteger x = BigInteger.ZERO;
int cnt = 1;
while(true)
{
x = x.multiply(BigInteger.valueOf(10)).add(BigInteger.valueOf(9));
cnt++;
if(x.mod(BigInteger.valueOf(i)) == BigInteger.ZERO)
{
if(maxn < cnt)
{
maxn = cnt;
pos = i;
}
break;
}
}
}
System.out.println(pos);
}
}

  

Project Euler 26 Reciprocal cycles的更多相关文章

  1. Project Euler 26 Reciprocal cycles( 分数循环节 )

    题意: 单位分数指分子为1的分数.分母为2至10的单位分数的十进制表示如下所示: 1/2 =  0.5 1/3 =  0.(3) 1/4 =  0.25 1/5 =  0.2 1/6 =  0.1(6 ...

  2. project euler 26:Reciprocal cycles

    A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with d ...

  3. Project Euler Problem 26-Reciprocal cycles

    看样子,51nod 1035 最长的循环节 这道题应该是从pe搬过去的. 详解见论文的(二)那部分:http://web.math.sinica.edu.tw/math_media/d253/2531 ...

  4. Python练习题 044:Project Euler 016:乘方结果各个数值之和

    本题来自 Project Euler 第16题:https://projecteuler.net/problem=16 ''' Project Euler 16: Power digit sum 2* ...

  5. Python练习题 039:Project Euler 011:网格中4个数字的最大乘积

    本题来自 Project Euler 第11题:https://projecteuler.net/problem=11 # Project Euler: Problem 10: Largest pro ...

  6. [project euler] program 4

    上一次接触 project euler 还是2011年的事情,做了前三道题,后来被第四题卡住了,前面几题的代码也没有保留下来. 今天试着暴力破解了一下,代码如下: (我大概是第 172,719 个解出 ...

  7. Python练习题 029:Project Euler 001:3和5的倍数

    开始做 Project Euler 的练习题.网站上总共有565题,真是个大题库啊! # Project Euler, Problem 1: Multiples of 3 and 5 # If we ...

  8. Project Euler 9

    题意:三个正整数a + b + c = 1000,a*a + b*b = c*c.求a*b*c. 解法:可以暴力枚举,但是也有数学方法. 首先,a,b,c中肯定有至少一个为偶数,否则和不可能为以上两个 ...

  9. Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.

    In Problem 42 we dealt with triangular problems, in Problem 44 of Project Euler we deal with pentago ...

随机推荐

  1. W25Q32的使用

    一.W25Q32简介 W25Q32是华邦公司推出的大容量“SPI  FLASH” 产品. 1.容量 32M-Bit/4M-byte(4,194,304) 2.存储结构 页:256-bytes 扇区:4 ...

  2. 我的WebX框架学习总结与心得分享

    最近学习了webx框架, 利用博客园跟大家分享一下自己的学习心得; 周建旭 2014-08-21 网上关于webx的资料少的可怜, 怎么办?  这种情况下不用去求助别人求人只会耽误时间, 不用畏惧; ...

  3. NOSQL Mongo入门学习笔记 - C++连接Mongodb(三)

    OS环境: Centos 7.1 release X86_64 编译环境: G++ 4.8.3 已经成功搭建好了Mongodb,也初步在命令行中的查询与写入数据的基本方法,现在通过C++来连接Mong ...

  4. easyBCD安装双系统,简单便捷,亲测好用

    一 准备工作(在WIN7下操作完成) 1   从官网http://www.ubuntu.com/上下载镜像文件,大小接近700M.下载EasyBCD最新版安装之.特别声明:EasyBCD是一款很优秀的 ...

  5. Java 8 vs. Scala(一): Lambda表达式

    [编者按]虽然 Java 深得大量开发者喜爱,但是对比其他现代编程语言,其语法确实略显冗长.但是通过 Java8,直接利用 lambda 表达式就能编写出既可读又简洁的代码.作者 Hussachai ...

  6. ICMP and InetAddress.isReachable()

    In Java it is only possible to work with two types of sockets: stream based ones (or TCP ones - java ...

  7. 【leetcode】3Sum Closest(middle)

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  8. gdb调试多线程程序总结

    阿里核心系统团队博客 http://csrd.aliapp.com/?tag=pstack Linux下多线程查看工具(pstree.ps.pstack) http://www.cnblogs.com ...

  9. redis的key过期时间

    public void set(String key,String value,int liveTime){ this.set(key, value); this.getJedis().expire( ...

  10. $.cookie 使用不了的问题定位过程

    最近在项目中需要使用到jquery的cookie,按理说在html头中引入jquery-1.7.1.min.js和jquery.cookie.js,然后在js中就可以使用cookie函数了.像这样使用 ...