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

  510904124706116762

python 求10亿以内和987654互质正整数的和,布布扣,bubuko.com

时间: 2024-08-02 07:02:12

python 求10亿以内和987654互质正整数的和的相关文章

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

使用python求10万内的所有素数的个数

#求10万内的所有素数(9592) print(2) count = 1 for i in range(3,100000): for j in range(2,i): if i%j ==0: break if j==i-1: print(i) 优化: count = 1 for i in range(3,100000,2):#跳过所有偶数 for j in range(2,i): if i%j ==0: break if j==i-1: count +=1 print(count) 再优化: c

欧拉函数 求小于某个数并与其互质的数的个数

1 const int maxn=32790; 2 int euler[maxn+2]; 3 void make() 4 { 5 euler[1]=0; 6 for(int i=2;i<=maxn;++i) 7 euler[i]=i; 8 for(int i=2;i<=maxn;++i) 9 if(euler[i]==i) 10 for(int j=i;j<=maxn;j+=i) 11 euler[j]=euler[j]/i*(i-1); 12 } euler[n]代表的就是在n之前与n

一个简单的公式——求小于N且与N互质的数的和

首先看一个简单的东西. 若gcd(i,n)=1,则有gcd(n-i,n)=1. 于是在小于N且与N互质的数中,i与n-i总是成对存在,且相加等于n. 考虑i=n-i的特殊情况,此时n=2*i,由gcd(i,n)=1,得n=2.此时手动计算ans=1. 因为小于N且与N互质的数的个数为φ(n),于是我们可以得出公式ans=n*φ(n)/2.

容斥原理 求M以内有多少个跟N是互质的

开始系统的学习容斥原理!通常我们求1-n中与n互质的数的个数都是用欧拉函数! 但如果n比较大或者是求1-m中与n互质的数的个数等等问题,要想时间效率高的话还是用容斥原理! 本题是求[a,b]中与n互质的数的个数,可以转换成求[1,b]中与n互质的数个数减去[1,a-1]与n互质的数的个数. #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define LL long

HDU3240-Counting Binary Trees(Catalan数+求逆元(非互质))

Counting Binary Trees Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 564    Accepted Submission(s): 184 Problem Description There are 5 distinct binary trees of 3 nodes: Let T(n) be the number

求出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+

在10万以内判断,一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,求该数

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果. 程序源代码: #include<stdio.h> #include<math.h> int main() { long int i, x, y; for (i = 1; i<100000; i++) { x = sqrt(i + 100); y = sq

微信春晚红包的10亿个红包,到底难在哪儿?

4800倍的挑战 今年微信红包方式与去年用户与用户之间互发红包相比,摇红包的方式对业务量来说是一个极大的爆发,光是除夕10:30送出的一波红包就达到了1.2亿个,已经是2014年除夕夜峰值的4800倍之巨(2014年峰值每分钟被拆开红包数量仅2.5W个)!发10亿红包,难在哪里? 微信团队总结下来有三大难点:快——如何保证用户快速摇到红包?准——如何保证摇到的红包能成功拆开?稳——如何保证拆开的红包能分享出去? 大量用户在同一时间摇红包,瞬间产生每秒千万级的请求,这个量级的请求如果不加以疏导处理