`
EmmaZhao
  • 浏览: 33409 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Project Euler 23:Find the sum of all the positive integers which cannot be writt

    博客分类:
  • math
阅读更多
A perfect number is a number for which the sum of its proper divisors is exactly equal to the number. For example, the sum of the proper divisors of 28 would be 1 + 2 + 4 + 7 + 14 = 28, which means that 28 is a perfect number.

A number n is called deficient if the sum of its proper divisors is less than n and it is called abundant if this sum exceeds n.

As 12 is the smallest abundant number, 1 + 2 + 3 + 4 + 6 = 16, the smallest number that can be written as the sum of two abundant numbers is 24. By mathematical analysis, it can be shown that all integers greater than 28123 can be written as the sum of two abundant numbers. However, this upper limit cannot be reduced any further by analysis even though it is known that the greatest number that cannot be expressed as the sum of two abundant numbers is less than this limit.

Find the sum of all the positive integers which cannot be written as the sum of two abundant numbers.

1. compute the sum of the proper divisors
def sumOfDivision(n):
	limit = n/2
	i = 2
	sum = 1
	while i < limit:
		if n %i == 0:
			limit = n /i
			if n /i == i:
				sum += i
			else:
				sum += (i + n/i)
		i += 1
	return sum

2. finding all the abundant numbers
def abundant():
	result = []
	for i in range(1,28124):
		if sumOfDivision(i) > i:
			result.append(i)
	return result

3. compute all the sums of the abundant numbers and the sum of those cannot be written as the sum of 2 abundant numbers
def sumOfNonAbundant():
	sum = 0
	#打表
	result = abundant()
	flag = [False for i in range(28124)]
	l = len(result)
	for i in range(l):
		for j in range(i,l):
			if result[i] + result[j] < 28124:
				flag[result[i] + result[j]] = True
	for i in range(28124):
		if flag[i]  == False:
			sum += i
	return sum
分享到:
评论

相关推荐

    projecteuler100:https:projecteuler.net

    projecteuler100:https:projecteuler.net

    projecteuler.net:我对 Project Euler 问题的一些解决方案

    Project Euler 是一个在线平台,提供了一系列数学和计算机科学的挑战问题,旨在提高解题技巧,同时也为编程爱好者提供了练习和学习的机会。这个项目通常涉及到算法、数学和编程的结合,鼓励用户通过编写高效的代码来...

    下载Project Euler题目

    标题 "下载Project Euler题目" 暗示了这个压缩包可能包含了与解决Project Euler问题相关的Java源代码。Project Euler是一个在线平台,提供了大量的数学和计算机科学问题,旨在提高编程技能和数学理解。这些问题通常...

    ProjectEuler 解题表格

    **项目欧拉(Project Euler)**是一个非常受欢迎的在线数学和计算机科学问题解决平台,它吸引了全球许多程序员和数学爱好者的参与。这个平台提供了一系列具有挑战性的问题,这些问题通常涉及数学、算法、计算机编程...

    ProjectEuler1-16代码

    【标题】"ProjectEuler1-16代码"所涉及的知识点主要集中在计算机编程和算法设计上,尤其针对初学者和编程爱好者。Project Euler是一个在线平台,它提供了一系列的数学和计算机科学问题,旨在通过解决这些问题来提升...

    Project-Euler:projecteuler.net 上问题的解决方案

    在编程世界中,Project Euler 是一个著名的在线平台,它提供了大量的数学和计算机科学问题,旨在通过挑战参与者解决这些问题来提高其编程和问题解决能力。这个压缩包“Project-Euler:projecteuler.net 上问题的解决...

    project-euler:我对projecteuler.net上问题的解决方案

    在这个压缩包“project-euler-master”中,很显然包含了作者对Project Euler问题的Python解决方案。 在Python编程语言中解决Project Euler问题,我们可以学习到许多关键的编程概念和技术。以下是一些可能涵盖的知识...

    Project Euler 第22题

    【标题】"Project Euler 第22题"是一个著名的编程挑战,源自Project Euler网站,这是一个鼓励人们通过编程解决数学和计算问题的在线平台。这道题目通常涉及到字符串处理、排序以及数学计算,旨在锻炼编程者的问题...

    matlab不运行一段代码-EulerProject:该目录在https://projecteuler.net/上提供了基于MATLAB的Eu

    Project的问题的解决方案,因此,看到此处尝试了一种完全不同的方法并返回正确答案应该不会感到震惊。 到目前为止,已经解决了10个问题,但是随着更多解决方案的上传,目录将继续更新。 特定问题的每段代码的名称均...

    ProjectEuler:https:projecteuler.net

    【描述解析】:“ProjectEuler” 是对标题的简洁复述,暗示我们将讨论的是关于解决Project Euler中的问题,这些问题通常涉及数学、算法和编程。 【标签解析】:“Python” 表明在解决Project Euler问题时,我们将...

    project-euler:多种语言的projecteuler.net问题解决方案

    《项目欧拉:多语言实现的ProjectEuler.net问题解决方案》 Project Euler是一个深受程序员喜爱的在线挑战平台,它提供了一系列涉及数学、计算机科学和算法的难题,旨在提高编程技能和解决问题的能力。这个名为...

    project-euler:Project Euler 问题的解决方案(主要使用 Java)

    本项目中的压缩包文件"project-euler-master"很可能包含了一个Java开发者的解决方案集,用于解决Project Euler的各种问题。 **Java编程语言基础** Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现...

    project-euler:Project Euler(http:projecteuler.net)解决难题的方法

    在`project-euler-master`这个压缩包中,可能包含了多个子文件夹,每个对应一个Project Euler问题的解决方案。通过阅读和分析这些代码,你可以深入了解如何运用上述知识点来解决实际问题。同时,这也是一个很好的...

    project_euler:Project Euler 问题的解决方案 https

    project_euler Project Euler 问题的解决方案 ###Problem 1 - 3 和 5 的倍数### 如果我们列出所有 10 以下是 3 或 5 的倍数的自然数,我们得到 3、5、6 和 9。这些倍数的和是 23。求1000 以下所有 3 或 5 的倍数之...

    project_euler:应对Project Euler挑战(https:projecteuler.net)

    项目 Euler 是一个在线平台,提供了一系列数学和计算机科学的挑战问题,旨在提升参与者的编程技巧、算法理解以及数学素养。这个平台对初学者和经验丰富的程序员都极具吸引力,因为它提供了实际应用数学和编码的机会...

    project euler problem 5

    题目:Project Euler问题5——寻找最小公倍数 在Project Euler的问题集中,问题5要求我们找到能被1至20所有数字整除的最小正整数。这个问题实际上是在寻找这组数字的最小公倍数(LCM)。对于较小的参数值,如本例中...

    ProjectEuler:Project Euler 问题的解决方案

    "Project Euler: Project Euler 问题的解决方案"是一个与编程挑战相关的项目,主要集中在使用JavaScript解决数学和计算问题。Project Euler是一个著名的在线平台,它提供了一系列的数学和计算机科学问题,旨在提升...

    Project-Euler:我使用 C++ 解决 Project Euler 问题

    Project-Euler 我使用 C++ 解决 Project Euler 问题 摘自网站: “欧拉计划是一系列具有挑战性的数学/计算机编程问题,需要的不仅仅是数学洞察力来解决。虽然数学可以帮助你找到优雅有效的方法,但解决大多数问题...

    ProjectEuler:projecteuler.net

    欧拉计划(Project Euler)是一个在线平台,旨在通过一系列具有挑战性的数学和计算机科学问题来提升编程技巧。这些问题设计巧妙,通常需要运用到数学、算法和编程知识来解决。参与欧拉计划,不仅可以锻炼编程能力,...

    Euler- the master of us all

    轻松的文字让数学思想变得自然,读者需要对数学有那么一点兴趣与敬意。不要被书中的公式推导所吓倒,当中所使用的多数为中学知识。

Global site tag (gtag.js) - Google Analytics