Python实现求1-1000以内的素数

def func():
    for i in range(2,1000):
        # count表示被整除的次数
        count = 0
        for j in range(1,i+1):
            if i%j==0:
                count+=1
            # count==2说明,该数字只能被1和它本身整除
            if count==2:
                if i==j:
                    print(i)

func()

原文地址:https://www.cnblogs.com/lxmtx/p/11840130.html

时间: 2024-11-13 09:56:50

Python实现求1-1000以内的素数的相关文章

一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间

我曾经去一个公司面试,遇到这么一个题目:求1000以内的素数有多少个?用多线程实现,并给出消耗时间.我想了半天,没有想出多线程的解决方案.今天因为机缘到了,我浅谈下我的解法. 这道题,显然得考虑两个问题: 1.多线程的问题 2.算法性能问题 有人觉得1000以内还考虑什么算法性能?这肯定很快.但是话说回来,这个都有必要用多线程吗?如果我们求10000000以内的素数有多少个?是不是必须考虑以上两个问题了?多线程和算法优化的目的都是为了提高程序执行的效率.我们首先来考虑算法问题,什么是素数?素数:

python脚本11_求10万以内所有素数

#求10万以内所有素数 num = int(input(">>>")) strs = '' for i in range(2,num): for c in range(2,int(i**0.5)+1): if i%c == 0: break else: strs += str(i)+' ' print(strs) 方法2: print(2) for i in range(3,100001,2): if i>10 and i%10 == 5: continue e

输出1000以内的素数

记得以前也写过,当时不会写是看了别人的答案才写出来的,今天再写发现还是不会写,看来上次是根本就没有学会呀,不过苦思冥想还是想出来一种不那么好的方法,好在自己理顺了思路,是自己研究出来的成果. 输出1000以内的素数,那么只需要每次取出一个数,然后把这个数依次除以从2到它本身,看余数,如果余数有0的情况,那么一定不是素数,如果全部除完了发现都没有余数为0的情况,那么一定是素数. 比如判断7是不是素数,必须看7%[2,6]的结果. 容易发现,不是素数这个条件比较容易满足,因为只要有一个余数为0的情况

python求1000以内的素数

import timedef isPrime(n): for i in range(2,int(n**0.5)+1): if n % i==0: return False else: return True strPrimes=""t=time.clock()for j in range(2,1000): if isPrime(j): strPrimes=strPrimes+str(j)+"," print(strPrimes)print("Time us

100万以内的素数

设计算法如下: (1)用2,3,5,7逐个试除N的方法求出100以内的所有素数. (2)用100以内的所有素数逐个试除的方法求出10000以内的素数. 首先,将2,3,5,7分别存放在a[1].a[2].a[3].a[4]中,以后每求出一个素数,只要不大于100,就依次存放在A数组中的一个单元中.当我们求100-10000之间的素数时,可依次用a[1]-a[2]的素数去试除N,这个范围内的素数可以不保存,直接打印. import java.util.*; class Main{ public s

实现100以内的素数输出(Python与C++对比)

今天从链接http://www.2cto.com/kf/201302/187699.html中看到了Python实现100以内的素数输出的算法,颇受感触.尤其是被其中的Python的列表生成器的使用方式帅到了! 看完Python的算法实现之后,先是回到老本行用C++实现了一遍,通过对比,你就可以发现Python真的是太简洁了!!! 1 /* 2 题目:100以内的素数输出算法验证 3 时间:2015年9月11日 4 作者:LeonWen 5 */ 6 7 #include "stdafx.h&q

python 求10亿以内和987654互质正整数的和

加群看见的 但是计算好慢,谁有更优的算法,麻烦说一下. ? 1 2 3 4 5 6 7 8 9 10 factor=[] for x in xrange(1, 987654//2+1):     if 987654%x==0:         factor.append(x) sum=0 for y in xrange(1, 1000000000):     for z in factor:         if y%z == 0:             sum+=y print sum 51

Java版求1000以内的完全数

/* * 若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数,简称完数. * 例如:6=1+2+3. * 题目:求1000以内的完全数. */ public class PerfectNumber { // 数字上限 static Integer limit = 1000; public static void main(String[] args) { System.out.println(limit + "以内的完全数有:"); fun(lim

求出10000以内所有的完全数-python

题目: 如何用python去求出下一个(大于28的)完全数? (求出10000以内所有的完全数) 分析: 如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数,又称完美书或完备数. 1.第一个完全数是6,它有约数1,2,3,6,除去它本身6外,其余3个数相加为:1+2+3=6 2.第二个完全数是28,它有约数1,2,4,7,14,28,除去它本身28外,其余5个数相加为:1+

26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.

?#include<iostream> using namespace std; int main() { for(int i=1;i<=1000;i++) { int sum=0; for(int j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { cout<<i<<" "<<endl; } } return 0; } 26.一个正整数如果恰好等于它的因子之和,这个数称为