Pandigital prime

Problem 41

We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime.

What is the largest n-digit pandigital prime that exists?

Answer:

7652413

Completed on Thu, 30 Jul 2015, 08:32

Go to the thread for problem 41 in the forum.

首先发现3k和3k-1位的ppandigital肯定能被3整除。所以就剩下1,4,7,10。13。。。推測题意应该是9以内的所以就试试7咯,代码是前面代码扩展,就出结果了

http://blog.csdn.net/zhangzhengyi03539/article/details/43501225

http://blog.csdn.net/zhangzhengyi03539/article/details/47057049

__author__ = 'zhengyi'
import math
from functools import reduce
def IsPrime(x):
if x==1:
return False
k=int(math.sqrt(x))+1
for i in range(2,k):
if x%i==0:
return False
return True def reducefunc(x,y):
return 10*x+y def func1(x):
i=1
val=1
while val<x:
i+=1
val*=i
if val==x:
return (1,i,0)
else:
step=val//i
k=x//step
return (k,i-1,x%(k*step)) def func2(x):
lst=[]
result=func1(x)
while result[2]!=0:
lst.append(result[0:2])
result=func1(result[2])
lst.append(result[0:2])
return lst def func3(x,clst):
result=[]
count=len(clst)
lst=func2(x)
length=len(lst)
for i in range(0,length):
if i<length-1:
delta=lst[i][0]
position=lst[i][1]+1
while count>position:
result.append(clst[-count])
del clst[-count]
count-=1
result.append(clst[-position+delta])
del clst[-position+delta]
count-=1
else:
delta=lst[i][0]-1
position=lst[i][1]+1
while count>position:
result.append(clst[-count])
del clst[-count]
count-=1
result.append(clst[-position+delta])
del clst[-position+delta]
count-=1
while count>0:
result.append(clst[-1])
del clst[-1]
count-=1
return result charlist=[i for i in range(7,0,-1)]
k=0
while True:
k+=1
temp=func3(k,charlist.copy())
data=reduce(reducefunc,temp)
if IsPrime(data):
print(data)
break print("Get it")

EularProject 41:最长的n位Pandigital素数问题的更多相关文章

  1. angular 输入框自动绑定值最长为16位,超过16位则会报错

    最近发现angular在使用input输入框的ng-model绑定scope变量的时候,发现,输入长串的数字将会出错.代码如下: <html> <head> <meta ...

  2. csv的文件excel打开长数字后面位变0的解决方法

    对于有大数字的CSV文件,应使用导入,而不是打开.这里以Excel2010为例,其它版本也可以参照: 打开Excel,此时Excel内为空白文档 点击工具栏中的[数据]→[自文本] 在“导入文本文件” ...

  3. (Problem 41)Pandigital prime

    We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly o ...

  4. 【Android端 APP 启动时长获取】启动时长获取方案及具体实施

    一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分 ...

  5. HDU-2562 奇偶位互换

    http://acm.hdu.edu.cn/showproblem.php?pid=2562 奇偶位互换 Time Limit: 3000/1000 MS (Java/Others)    Memor ...

  6. HDOJ/HDU 2562 奇偶位互换(交换位置~)

    Problem Description 给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换. Input 输入包含多组测试数据: 输入的第一行是一个整数C,表示有C测试数据: 接下来是C组测 ...

  7. phpstudy手动把mysql数据库从5.5.56升级到5.6.41

    查看mysql版本: mysql> select version(); 1.关闭mysql,把原来的D:/phpStudy/PHPTutorial/mysql改名为MySQL_5.5.53作为备 ...

  8. 编译器是如何实现32位整型的常量整数除法优化的?[C/C++]

    引子 在我之前的一篇文章[ ThoughtWorks代码挑战——FizzBuzzWhizz游戏 通用高速版(C/C++ & C#) ]里曾经提到过编译器在处理除数为常数的除法时,是有优化的,今 ...

  9. HDU 2562 奇偶位互换(字符串,水)

      奇偶位互换 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

随机推荐

  1. Linux局域网登陆响应时间过长

    在局域网中,使用ssh登陆到其他机器上时,有时会出现等待10s以上才能正常登陆的问题. 原因: Linux默认使用dns解析登陆IP,但是在局域网,并没有dns服务器,而且机器上也没有添加 IP与域名 ...

  2. android SIM Switch功能和配置

    SIM Switch feature是Smart 3G switch feature在LTE版本号上发展演变而来的功能: MTK双卡双待单通版本号仅仅有一个3/4 G Protocol.所以同一时刻仅 ...

  3. Jmeter作为工具的性能测

    [原创]相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测) 准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent ...

  4. three.js 运行3D模型

    HTML  <!DOCTYPE html> <html style="height: 100%;"> <head> <title>m ...

  5. POJ 3168 排序+扫描

    题意: 思路: 我们可以把每个矩形拆成四条线 与x轴平行的放在一起 与y轴平行的放在一起 排个序 判一判有没有交 有交 则说明不可扩张 统计一下 就可以了 处理的姿势很重要 姿势不对毁一生 //By ...

  6. OpenCV —— 视频播放控制

    创建滚动条,实现滚动条随视频播放移动. #include "cv.h" #include "highgui.h" CvCapture* capture=NULL ...

  7. ajax事件(五)

    建立和探索一个简单示例之后,现在可以深入了解XMLHttpRequest对象支持的功能,以及如何在你的请求中使用它们了.起点就是第二级规范里定义的那些额外事件.之前已经使用一个:readystatec ...

  8. NOI2017整数

    NOI2017 整数 题意: ​ 让你实现两个操作: 1 \(a\) \(b\):将\(x\)加上整数\(a \cdot 2 ^ b\),其中 \(a\)为一个整数,\(b\)为一个非负整数 2 \( ...

  9. 【Django】Form组件

    目录 Form组件介绍 常用字段与插件 Form组件中所有内置字段 从数据库中获取数据 校验示例 检验手机号是否合法 方式一(基本操作) 方式二(自定义验证规则) 方式三(利用钩子) 验证密码一致性 ...

  10. ssh-keygen && ssh-copy-id 生成管理传输秘钥