欧拉工程第64题:Odd period square roots
找循环位数是奇数的数有多少个
这个自己很难写出来,完全不能暴力
维基百科链接 维基百科上面说的很好,上面的算法实现就好了。
就是上面的
Java程序:
package project61;
public class P64{
void run(){
int count = 0;
int m = 0;
int d = 1;
int a0 = 0;
int a = 0;
int period = 0;
for(int S = 2;S<10000;S++){
period = 0;
m = 0;
d = 1;
a0 = (int) (Math.sqrt(S));
if(a0*a0 == S) continue;
a = a0;
do{
m = d*a - m;
d = (S-m*m)/d;
a = (a0+m)/d;
period++;
}while(a!=2*a0);
if(period%2==1) count++;
}
System.out.println(count);
}
public static void main(String[] args){
long start = System.currentTimeMillis();
new P64().run();
long end = System.currentTimeMillis();
long time =end - start;
System.out.println("run time:"+ time/1000+"s"+time%1000+"ms");
}
}
Python程序
import time as time start = time.time() count = 0 for S in range(2,10000):
m = 0
d = 1
a0 = int(S**0.5)
if a0*a0 == S :continue
preiod = 0
a= a0
while a!=2*a0:
m = d*a - m
d = (S - m*m)/d
a = int((a0 + m)/d)
preiod+=1
if preiod%2==1:count +=1 end = time.time()
print "time={0} secs,count={1}".format((end-start),count)
上面两个程序几乎一样的
欧拉工程第64题:Odd period square roots的更多相关文章
- 欧拉工程第69题:Totient maximum
题目链接 欧拉函数φ(n)(有时也叫做phi函数)可以用来计算小于n 的数字中与n互质的数字的个数. 当n小于1,000,000时候,n/φ(n)最大值时候的n. 欧拉函数维基百科链接 这里的是p是n ...
- 欧拉工程第70题:Totient permutation
题目链接 和上面几题差不多的 Euler's Totient function, φ(n) [sometimes called the phi function]:小于等于n的数并且和n是互质的数的个 ...
- 欧拉工程第66题:Diophantine equation
题目链接 脑补知识:佩尔方差 上面说的貌似很明白,最小的i,对应最小的解 然而我理解成,一个循环的解了,然后就是搞不对,后来,仔细看+手工推导发现了问题.i从0开始变量,知道第一个满足等式的解就是最小 ...
- 欧拉工程第67题:Maximum path sum II
By starting at the top of the triangle below and moving to adjacent numbers on the row below, the ma ...
- 欧拉工程第65题:Convergents of e
题目链接 现在做这个题目真是千万只草泥马在心中路过 这个与上面一题差不多 这个题目是求e的第100个分数表达式中分子的各位数之和 What is most surprising is that the ...
- 欧拉工程第56题:Powerful digit sum
题目链接 Java程序 package projecteuler51to60; import java.math.BigInteger; import java.util.Iterator; im ...
- 欧拉工程第55题:Lychrel numbers
package projecteuler51to60; import java.math.BigInteger; import java.util.Iterator; import java.util ...
- 欧拉工程第54题:Poker hands
package projecteuler51to60; import java.awt.peer.SystemTrayPeer; import java.io.BufferedReader; impo ...
- 欧拉工程第53题:Combinatoric selections
package projecteuler51to60; class p53{ void solve1(){ int count=0; int Max=1000000; int[][] table=ne ...
随机推荐
- HTML5-Video & Audio
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- [JS进阶] 编写可维护性代码 (1)
今天的web应用大至成千上万行的javascript代码,执行各种复杂的过程,这种演化让我们开发者必须得对可维护性有一定的认识!编写可维护性代码很重要,很多情况下我们是以他人的工作成果为基础,确保代码 ...
- Android L Ripple的使用
声明:Demo并不是有本人所写,本人只是总结在这里 工程源码: RippleDemo.zip ---------------------------------------------------- ...
- SQL中的日期时间函数
之所以把日期时间函数单独拿出来回顾一下,是因为这一部分的内容比较独立,C#中也有类似的日期时间函数,趁着想得起来,写个标题先.
- 常用设备类别及其GUID
Class ClassGuid 说明 1394 6BDD1FC1-810F-11D0-BEC7-08002BE2092F 1394主控制器 CDROM 4D36E965-E325-11CE-BFC1- ...
- 如何访问Microsoft Azure Storage
首先先要创建存储账户 http://www.cnblogs.com/SignalTips/p/4119128.html 可以通过以下的几个方式访问 通过Visual Studio 2013 Commu ...
- MySQL Online DDL 工具之pt-online-schema-change
MySQL DDL:DDL是一个令所有MySQL dDBA 诟病的一个功能,因为在MySQL中在对表进行dDDL时,会锁表,当表比较小比如小于1W行时,对前端影响较小,当时遇到千万级别的表,就会影响前 ...
- Oracle收缩表空间
可以使用 alter database datafile 'file path...' resize xM 的命令来缩小数据文件. SELECT 'alter database datafile '' ...
- Python之str(),repr(),``
对于对象obj: str()生成的字串是给人看的 repr()生成的字串是给解析器看的 ``与repr()等义. 最直接就是: ------------------- obj=eval(repr(ob ...
- 通过注册表检测UAC是否处于关闭状态(不弹窗)
注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System UAC各级别对应的注册表值: 从 ...