Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86589
  • 博文数量: 47
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 12:11
文章分类

全部博文(47)

文章存档

2008年(47)

我的朋友

分类:

2008-11-23 19:38:39

Problem 58

05 December 2003

Starting with 1 and spiralling anticlockwise in the following way, a square spiral with side length 7 is formed.

37 36 35 34 33 32 31
38 17 16 15 14 13 30
39 18  5  4  3 12 29
40 19  6  1  2 11 28
41 20  7  8  9 10 27
42 21 22 23 24 25 26
43 44 45 46 47 48 49

It is interesting to note that the odd squares lie along the bottom right diagonal, but what is more interesting is that 8 out of the 13 numbers lying along both diagonals are prime; that is, a ratio of 8/13 62%.

If one complete new layer is wrapped around the spiral above, a square spiral with side length 9 will be formed. If this process is continued, what is the side length of the square spiral for which the ratio of primes along both diagonals first falls below 10%?

1.如果side length=n, 则对角线上共有数据2*n-1

2.数字1为第0层,则第i层的数据为,左上角la=(2*i)*(2*i)+1, 左下角lu=(2*i)*(2*i)+2*i+1, 右上角ra=(2*i)*(2*i)-(2*i-1), 右下角ru=(2*i+1)*(2*i+1)    

def fun58():
    l = 9
    a = 8
    while 1:
        count = a
        t  = l-1
        la = t**2 + 1
        if isPrime(la):
            count += 1

        lu = t**2+l
        if isPrime(lu):
            count += 1

        ra = t**2 - l + 2
        if isPrime(ra):
            count += 1

        a = count
        if count/float(2*l-1) < 0.1:
            return l
        l += 2

answer is 26241
time:2.11000013351
阅读(555) | 评论(0) | 转发(0) |
0

上一篇:Problem 56

下一篇:Problem 62

给主人留下些什么吧!~~