python-趣味百题3

等差素数数列:类似7、37、67、97;107、137、167、197这样由素数组成的数列。
素数数列具有项数的限制,一般指素数数列的项数有多少个连续项,最多可以存在多少个连续项
编程找出100以内的等差素数数列
思路:
1.筛法找出100以内所有素数
2.对于素数list内两两组合,构造等差数列a0,a1项
3.计算出a2,查表判断a2是否有素数,是素数则能构造成素数等差序列,计算a3...
def findAllPrime(n):
    pt = [True] * n
    prime = []
    for p in range(2,n):
        if not pt[p]:continue
        prime.append(p)
        for i in range(p * p, n, p):
            pt[i] = False
    return prime,pt
prime, pt = findAllPrime(100)
print prime
for i in range(len(prime)):
    for j in range(i+1,len(prime)):
        a0,a1 = prime[i],prime[j]
        an = a1 + a1-a0
        s =[]
        while an < 100 and pt[an]:
            s.append(an)
            an+=a1-a0
        if s:
            print [a0,a1] + s

时间: 2024-10-13 05:40:36

python-趣味百题3的相关文章

Python趣味百题链接地址:http://www.cheemoedu.com/exercise_list/

python趣味百题:http://www.cheemoedu.com/exercise_list/ 汉诺塔问题 def move(a,b,c,n):#x原坐标 ,y终点坐标,z辅助坐标,n个数 if n==1: print'%s->%s:%s'%(a[0],b[0],a[-1]) b.append(b.pop()) print x,y,z return move(a,c,b,n-1) print '%s->%s:%s'%(a[0],b[0],a[-1]) b.append(a.pop())

Python 趣味百题

趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪生素数 -中 3 金蝉素数 -中 4 可逆素数 -中 5 回文素数 -中 6 平方回文素数 -中 7 梅森尼数 -中 8 哥德巴赫猜想 -中 9 等差素数数列 -中 趣味图形 1 回型矩阵 -中 2 九九乘法表 -易 3 杨辉三角 -易 数学问题 1 天平秤物 -难 2 黑色星期五 -易 3 存钱问

Python趣味百题(初级篇) -- 1

51CTO上看到这个视频,自己试做一下:尾数前移:N尾数是6,把6移到最前面后是N的4倍 def move_last_num(): a = 1 while True: if 4 * (a * 10 + 6) == 6 * (10 ** len(str(a))) + a: print(a) return a else: a = a + 1 if __name__ == '__main__': n = move_last_num() N = n * 10 + 6 print(N) 水仙花数:一个n位

numpy百题冲关,pandas百题冲关, numpy-100库直接线上生成和训练,使用google云上notebook环境

numpy百题冲关,pandas百题冲关, numpy-100库直接线上生成和训练,使用google云上notebook环境 numpy后边涉及到矩阵和后期学习到的数学知识的实践 https://www.shiyanlou.com/courses/1090/learning/ pandas涉及到pandas相关应用.例如数据清洗等内容 https://www.shiyanlou.com/courses/1091 numpy-100环境 https://github.com/rougier/num

(c语法百题25)从 n 个数中挑选出最大的数

知识点: 数组灵活运用 for循环灵活运用 简单的算法 内容: 从 n 个数中挑选出最大的数 输入说明: 两行 第一行一个数n,表示总的个数 第二行共n个数字,用空格隔开. 输出说明: 一行,最大数 输入样例: 4 1 2 3 4 输出样例 : 4 #include <stdio.h>#define MAX 200; int main() { int a[MAX],n,i,t; scanf("%d",&n); for (i=0;i<n;i++) { scanf

(c语法百题21)四位整数

知识点: for语句,if语句灵活运用 内容: 编程找出四位整数 abcd 中满足下述关系的数: ( ab + cd )( ab + cd ) = abcd 输入说明: 没有输入 输出说明: 输出abcd,从小到大,一行一个. 1 #include <stdio.h> 2 int main() 3 { 4 int i,a,b; 5 for(i=1000;i<10000;i++) 6 { 7 a=i/100; 8 b=i%100; 9 if((a+b)*(a+b)==i) 10 { 11

(c语法百题12)优惠购物

知识点: if……else 的用法 内容: 节日期间,某超市举行优惠购物活动,规定:所购物品不超过1000元(含)时,按9.5折付款,如超过1000元,则超过部分按9折收费 输入说明: 一行 ,一个数,购物总额 输出说明: 一行 需付购物款(保留两位小数) 输入样例: 1200.58 输出样例 : 1130.52 1 #include <stdio.h> 2 int main() 3 { 4 float a,s; 5 scanf("%f",&a); 6 if (a&

(c语法百题11)输入一个数 ,输出其绝对值

知识点: if语句 内容: 输入一个数 ,输出其绝对值. 输入说明: 一行一个整数 输出说明: 一行一个整数 输入样例: -3 输出样例 : 3 #include <stdio.h> int main() { int a; scanf("%d",&a); if (a<0) { a=-a; } printf("%d\n",a); return 0; } (c语法百题11)输入一个数 ,输出其绝对值,布布扣,bubuko.com

(c语法百题13)符号函数

知识点: if……else……if……else的用法. 内容: 计算下列函数(符号函数): 1 (x>0) y= 0 (x=0) -1 (x<0) 输入说明: 一个整数 输出说明: 一个数字(1,0,或者-1) 输入样例: 12 输出样例: 1 1 #include <stdio.h> 2 int main() 3 { 4 int a; 5 scanf("%d",&a); 6 if (a>0) 7 { 8 printf("1\n"

(c语法百题15)算术运算

知识点: 法1: 字符与ASCLL码的转换熟练! if……else的用法 法2: switch的用法 注意 scanf("%f %f %c",&a,&b,&c);与scanf("%f%f%c",&a,&b,&c);的区别,中间有无空格. 内容: 输入两个数值(均不为零)及一个算术运算符,输出其运算的结果(保留两位小数). 输入说明: 一行,2个数字,一字符(+,-,*,/,分别代表加.减.乘.除 输出说明: 一行,一个