使用Javascript实现Amicable numbers

问题描述:

Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a  b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

实现:

(function(){  

var factor = function (n){
var arr = new Array();
for(var i = 1;i < n; i++)
{
if(n%i == 0 && arr.indexOf(i) == -1)
arr.push(i);
}
return arr;
}  

var sumArr = function(arr){
var sum = 0 ;  

for(var i = 0 ; i < arr.length; i++)
sum += arr[i];  

return sum ;
}  

for(var i = 2;i< 10000; i++)
{
var r1 = sumArr(factor(i));
var r2 = sumArr(factor(r1));  

if(i == r2 && i != r1)
console.log("num1 : " + i + ", num2 : " + r1);
}  

})();

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/script/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索function
, numbers
, sum
, var
, arr
and
javascript实现计算器、javascript实现进度条、javascript底层实现、javascript实现继承、javascript实现ajax,以便于您获取更多的相关知识。

时间: 2024-11-03 01:32:47

使用Javascript实现Amicable numbers的相关文章

Problem21

1.Problem 21 2.05 July 2002 3. 4.Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). 5.If d(a) = b and d(b) = a, where a b, then a and b are an amicable pair and each of a and b are called amicable

看图学习javascript

如果想成为一个高效的javascript的程序员,深刻理解javascript的语法是必须的.记得上小学的时候,再难的数学题通过画图的方式很快就能解决,我们在学习javascript有时感觉一些语法也比较难理解,为何不能用画图的方式帮助我们理解呢?下面我们就把javascript一些基本的语法转换成图行元素,估计您会有一个醍醐灌顶的感觉.这个系列文章我准备使用两篇文章写完,今天我们来看一些最基本的内容.   在javascript中变量名(variable)就是一个简单的标记,来引用内存中的一个

JavaScript初学者:JavaScript初学者应注意的七个细节

  每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任意类型的变量,这门脚本语言看起来很简单,然而想要写出优雅的代码却是需要不断积累经验的.本文利列举了JavaScript初学者应该注意的七个细节,与大家分享.(1)简化代码JavaScript定义对象和数组非常简单,我们想要创建一个对象,一般是这样写的:    1 var car = new Object(); 2 car.colour = 'red'; 3 car.wheels = 4; 4 car.hubcaps

javascript 时钟: javascript显示一个时钟

<html><head><script type="text/javascript">function starttime(){var today=new date()var h=today.gethours()var m=today.getminutes()var s=today.getseconds()// add a zero in front of numbers<10m=checktime(m)s=checktime(s)docume

Javascript排序实例

JavaScript排序的例子,如下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <html xmlns="http://www.w3.org/1999/xhtml">   <head>   <ti

Javascript实例教程(16) 使用Javascript的数学函数

javascript|函数|教程 在JavaScript中,数学方法可以分成以下几类:constans(常数).power functions(乘方函数).trigonometic functions(三角函数).rounding functions(舍入函数)以及random numbers(随机数字).下面逐个说明: 常数和乘方函数 Math.E 自然对数的底(为常数) 2.718 Math.LN10 10的自然对数 2.302 Math.LN2 2的自然对数 0.693 Math.PI 圆

JavaScript教程:优化次数过多的循环

假设要生成一千万个随机数,常规的做法如下:var numbers = [];for (var i = 0; i < 10000000; i++) { numbers.push(Math.random());} 然而,在IE下执行这段代码时,却弹出了一个窗口提示用户是否停止这段脚本.出现这种情况,首先想到的是优化循环体.但明显地,循环体很简单,没什么优化的余地.即使把循环体清空,提示仍然存在.于是,我得出了一个结论:在IE下,一旦循环次数超过了某个特定值,就会弹出停止脚本的提示. 原因找到了,该如

使用Javascript的数学函数

javascript|函数 在JavaScript中,数学方法可以分成以下几类:constans(常数).power functions(乘方函数).trigonometic functions(三角函数).rounding functions(舍入函数)以及random numbers(随机数字).下面逐个说明: 常数和乘方函数 Math.E 自然对数的底(为常数) 2.718 Math.LN10 10的自然对数 2.302 Math.LN2 2的自然对数 0.693 Math.PI 圆周率

菜鸟学习javascript实例教程

javascript|教程 用JS显示文字的例子: <html><body> <script type="text/javascript">document.write("Hello World!")</script> </body></html> 用HTML标签来格式化文本的例子: <html><body> <script type="text/java