两种筛法做质数筛选

class Solution(object):def numPrimeArrangements(self, n):"""朴素筛法, 又叫埃氏筛法, 时间复杂度O(nlogn)线性筛法, 又叫欧拉筛法, 时间复杂度O(n)"""def native_filter1(n):"""没有优化的朴素筛法,两层for循环"""count =  0array = [False for i in range(n+1)]array[1] = Truefor i in range(2, n//2+1):for j in range(2, n//2+1):if i * j > n:breakarray[i*j] = Truefor i in range(1, len(array)):if not array[i]:count += 1return countdef native_filter2(n):"""简单优化的朴素筛法,第二层循环可以不用从2开始, 直接筛i的倍数即可, 另外避免使用乘法"""count =  0array = [False for i in range(n+1)]array[1] = Truefor i in range(2, n//2+1):for j in range(i*2, n+1, i): # 等价于 i* karray[j] = Truefor i in range(1, len(array)):if not array[i]:count += 1return countdef Eluer_filter(n):"""欧拉筛法, 每次用质数因子去筛,即当前的如果是合数的话就不用该数作为因子,因为以它作为因子得到的数之前肯定也能得到"""count = 0array = [False for i in range(n + 1)]array[1] = Trueindex = 2while index < len(array):if array[index]:index += 1continuefor i in range(index * 2, n + 1, index):array[i] = Trueindex += 1for i in range(1, len(array)):if not array[i]:count += 1return countdef fac(n):return 1 if n <= 1 else n * fac(n-1)prime = Eluer_filter(n)non_prime = n - primereturn (fac(prime) * fac(non_prime)) % (pow(10, 9) + 7)

LC.1175. Prime Arrangements相关推荐

  1. qduoj LC and Prime

    LC and Prime 发布时间: 2015年9月19日 21:42   时间限制: 1000ms   内存限制: 32M 描述 Given a number n, please count how ...

  2. ccf 最优灌溉(prime模板)

    模板题 #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f int lowcost[1010]; int ...

  3. usaco Prime Palindromes

    新技能get,可以这样遍历回文数,的确厉害.注意剪枝不然超时. /* ID: jinbo wu LANG:C++ TASK: pprime */ #include <stdio.h> #i ...

  4. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime

    题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...

  5. Prime Path(bfs)广度优先搜索

    题目描述 The ministers of the cabinet were quite upset by the message from the Chief of Security stating ...

  6. F - Prime Path POJ - 3126

    F - Prime Path POJ - 3126 题意修改一个四位数质数的某一位,使得该质数又变为一个质数,求从当前数变为目标质数的最少变化次数. bfs枚举每一位的每种变化 #include< ...

  7. 小白都能看懂最小生成树prime算法

    定义不多说,说说代码的实现. 用落谷上的题目来说明代码的正确性 落谷上的题目 邻接矩阵的实现 定义一个生成树点的集合A,和图中其他点 的集合B 先任意选择一个点a加入到A中,即visit[a]=tru ...

  8. Codeforces Beta Round #92 (Div. 1 Only) A. Prime Permutation 暴力

    A. Prime Permutation 题目连接: http://www.codeforces.com/contest/123/problem/A Description You are given ...

  9. 【原创】CGAL中,2D Arrangements学习笔记

    2D Arrangement类型简介: 给定一组平面曲线,2D Arrangement能够将这组曲线所组成的图形细分成顶点.边和面这些最基本的几何单位.其中给定的曲线能够相互相交,甚至能自相交.其组成 ...

  10. Error Code: 1175. You are using safe update mode and you tried to ......

    MySQL提示的错误信息: Error Code: 1175. You are using safe update mode and you tried to update a table witho ...

最新文章

  1. 面向对象【day08】:类的特殊成员(一)
  2. AngularJS表单验证
  3. Qt学习(三):事件、定时器、事件过滤器
  4. 机器学习模型开发必读:开源数据库最全盘点
  5. python图片显示中文
  6. 针对IE的CSS hack 全面 实用
  7. 学校校车运营各项安全管理制度_廊坊市加强校车安全管理 确保师生生命安全...
  8. extjs4 grid 刷新数据时不改变滚动条位置
  9. PaddlePaddle(2)——数据获取与处理(以CV任务为主)
  10. vscode过滤pyc文件
  11. vm12下载安装centos7教程
  12. java自动化测试面试题_自动化测试面试题
  13. 天思经理人ERP日化行业应用方案
  14. Python实现屏幕取色器功能
  15. DELMIA软件:机器人固定点焊仿真
  16. 苹果手机 计算机 错误,苹果手机的计算器连1+2+3都算不对!原因太尴尬!
  17. 阿里巴巴Java开发规范手册(详尽版)——免费下载
  18. 对YOLO bounding box的理解
  19. matlab相关值计算公式,相关系数计算公式(Correlation coefficient calculation formula).doc...
  20. CSS——字体图标、平面转换、缩放

热门文章

  1. HR 问你为什么离职时是什么意思
  2. SSH 端口转发与 SOCKS 代理
  3. “无文件”攻击方式渗透实验
  4. JS手写实现call、apply、bind
  5. Redis源码解读(七)——基本类型—dict
  6. 二进制炸弹实验binarybomb 拆弹
  7. JAVA多线程模拟火车站售票大厅
  8. php抢票程序,python并发编程多进程 模拟抢票实现过程
  9. ROS学习记1——玩弄小海龟
  10. 鸿蒙生死印的是千叶影儿,逆天邪神:千叶影儿口中的可怕因素,其实并不难猜测...