今天写一个判断是否为循环素数的题,题干如下


题目内容:
数字197可以被称为循环素数,因为197的三个数位循环移位后的数字:197,971,719均为素数。100以内这样的数字包括13个,2,3,5,7,11,13,17,31,37,71,73,79,97。要求任意正整数n以内一共有多少个这样的循环素数。

输入格式:
一个正整数n。

输出格式:
n以内循环素数的数目。

输入样例:
100

输出样例:
13


其中需要拆分一个整数各位并进行重新组合,不过这里的组合只是循环移位就可以了。本题目我的实现代码如下

#python 2.7可用,3.0+需要更改input 和 print()
import mathdef split(num):data = []while num != 0:data.append(num % 10)num //= 10return datadef combine(data):return_data = []lens = len(data)for i in range(lens):sum = 0for j in range(lens):index = i+jif index >= lens:index -=lenssum += data[index]*10**jreturn_data.append(sum)return return_datadef isPrime(n): if n <= 1: return Falsefor i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return Falsereturn Truedef isCirclePrime(n):if isPrime(n):for i in combine(split(n)):if not isPrime(i):return Falsebreakreturn Trueelse:return Falsen = int(raw_input())count = 0for i in range(1,n):if isCirclePrime(i):count +=1print count

做这个题的时候联想到了一个问题,如何组合排列n个字符?
本来想动手写算法,但转念一想,万能的python说不定已经实现了呢?
百度之:

import itertoolslists = ['a','b','c','d']for i in range(1,len(lists)+1):print (list(itertools.permutations(lists,i)))#排列,和顺序有关print (list(itertools.combinations(lists,i)))#组合,和顺序无关输出:[('a',), ('b',), ('c',), ('d',)]
[('a',), ('b',), ('c',), ('d',)][('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'a'), ('b', 'c'), ('b', 'd'), ('c', 'a'), ('c', 'b'), ('c', 'd'), ('d', 'a'), ('d', 'b'), ('d', 'c')]
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')][('a', 'b', 'c'), ('a', 'b', 'd'), ('a', 'c', 'b'), ('a', 'c', 'd'), ('a', 'd', 'b'), ('a', 'd', 'c'), ('b', 'a', 'c'), ('b', 'a', 'd'), ('b', 'c', 'a'), ('b', 'c', 'd'), ('b', 'd', 'a'), ('b', 'd', 'c'), ('c', 'a', 'b'), ('c', 'a', 'd'), ('c', 'b', 'a'), ('c', 'b', 'd'), ('c', 'd', 'a'), ('c', 'd', 'b'), ('d', 'a', 'b'), ('d', 'a', 'c'), ('d', 'b', 'a'), ('d', 'b', 'c'), ('d', 'c', 'a'), ('d', 'c', 'b')]
[('a', 'b', 'c'), ('a', 'b', 'd'), ('a', 'c', 'd'), ('b', 'c', 'd')][('a', 'b', 'c', 'd'), ('a', 'b', 'd', 'c'), ('a', 'c', 'b', 'd'), ('a', 'c', 'd', 'b'), ('a', 'd', 'b', 'c'), ('a', 'd', 'c', 'b'), ('b', 'a', 'c', 'd'), ('b', 'a', 'd', 'c'), ('b', 'c', 'a', 'd'), ('b', 'c', 'd', 'a'), ('b', 'd', 'a', 'c'), ('b', 'd', 'c', 'a'), ('c', 'a', 'b', 'd'), ('c', 'a', 'd', 'b'), ('c', 'b', 'a', 'd'), ('c', 'b', 'd', 'a'), ('c', 'd', 'a', 'b'), ('c', 'd', 'b', 'a'), ('d', 'a', 'b', 'c'), ('d', 'a', 'c', 'b'), ('d', 'b', 'a', 'c'), ('d', 'b', 'c', 'a'), ('d', 'c', 'a', 'b'), ('d', 'c', 'b', 'a')]
[('a', 'b', 'c', 'd')]

Python中的排列和组合相关推荐

  1. Python 中 open(),close()组合与 with open()的区别

    目录 一.open()函数的基本用法 1. 读取文件 2. 打开模式 3. 编码方式 二.open(),close()与 with open()的区别 一.open()函数的基本用法 在介绍区别之前先 ...

  2. python中组合框_Tkinter Python中的多个组合框

    我试图用一个配置文件"文件配置.ini文件数据是: 优先级1=正常:farty-blobble-fx.wav:2 优先权8=Reclamacao:buzzy-blop.wav:3 优先级3= ...

  3. python中写入用例组合csv文件,单独用excel打开乱码问题

    题:有五组参数需要组合测试 a = [ '陕西',' ','错误'] #省份 b =['西安',' ','错误'] #市 c= [ '未央区',' ','错误'] #区/县 d = [ '凤城10路' ...

  4. python 笛卡尔积,排列,组合

    一.[问题] 目前有一字符串s = "['a', 'b'],['c', 'd']",想把它分开成为两个列表: list1 = ['a', 'b'] list2 = ['c', 'd ...

  5. Python | 排列与组合

    本文简要总结在 Python 中实现排列与组合的方法. Update: 2022 / 11 / 21 Python | 排列与组合 总览 方法 itertools 用法 示例 不考虑顺序 考虑顺序 n ...

  6. python中系列的含义_python中四种组合数据类型的含义、声明、增删改查,遍历

    一.列表 列表:list 可以存储多个有顺序的可以重复的数据的类型 其他语言:数据:python中~提供的是列表[不说数组] 列表:操作数据:增加.删除.修改.查询 [CRUD] append/ins ...

  7. python打开excel并写入数据,Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据......

    背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...

  8. 【Python基础】Python中的高效迭代库itertools,排列组合随便求

    本文目录 一.模块概述 二.组合生成器 2.1 product 2.2 permutations 2.3 combinations 2.4 combinations_with_replacement ...

  9. python中如何求列表中的和_python实现求解列表中元素的排列和组合

    求解列表中元素的排列和组合问题这个问题之前就遇到过几次没有太留意,最近在做题的时候遇上挺多的排列组合问题的,想来有必要温习一下了,今天花点时间写一下,之前都是手工写的,后来知道可以直接使用python ...

最新文章

  1. python自动扫雷_利用Python实现自动扫雷
  2. Failed building wheel for netifaces
  3. Delphi连接AutoCAD_计算任意线条的长度宏的嵌套
  4. linux安装python3教程_linux下安装python3和对应的pip环境教程详解
  5. Android工程中R.java文件的重新生成——注意资源文件的错误
  6. Spring Boot与Activiti集成实战
  7. hbase里插入big int数据用Phoenix查看的报错问题
  8. WinForm程序启动时不显示主窗体的实现方法
  9. OpenCV-绘制多边形(fillConvexPoly和fillPoly的区别)
  10. 类文件Android 代码混淆 以及 反编译 的实现类文件
  11. 跟据URL来实现WebService
  12. 黑群晖linux删除文件夹命令,手把手教你黑群晖(二)
  13. python用input输入整数列表_Python用input输入列表的方法
  14. Java实现按分数排名,同分同名次
  15. 《平凡的世界》造就不平凡的人生 --路遥
  16. 云上全流程透明性备品备件协同管理
  17. 计算机网络-DHCP的工作原理,IP地址如何获取
  18. 公众号推送长图最佳尺寸_公众号10W 排版攻略,长图无缝拼接一步做到!
  19. iOS 通讯录-获取联系人属性
  20. SANGFOR V批N_v7.0如何开启硬件特征码认证

热门文章

  1. 015:苹果和虫子2
  2. 阿里巴巴商家使用频率最多的数据接口分享
  3. DualVD:借鉴认知双向编码理论,提出视觉对话新框架 | AAAI 2020
  4. python比较学生名单与签到名单查缺勤(Excel)
  5. 路由器wan口ip地址_如何在没有浏览器的情况下查找外部或WAN IP地址?
  6. C++中的peek()函数及其用法
  7. pandas——分组与聚合
  8. 第二型曲线和曲面积分总结
  9. web自动化(鼠标、键盘操作)
  10. 找出1000瓶牛奶中有毒的牛奶