zoukankan      html  css  js  c++  java
  • (Problem 21)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.

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<ctype.h>
    #include<stdlib.h>
    #include<stdbool.h>
    
    int FactorSum(int n)  //计算n的所有小于n的因素和
    {
    	int i;
    	int sum=1;
    	for(i=2; i<=n/2; i++)
    	{
    		if(n%i==0)
    			sum+=i;
    	}
    	return sum;
    }
    
    int main()
    {
    	int t,i=2;
    	int sum=0;
    	while(i<10000)
    	{
    		t=FactorSum(i);
    		if(t!=i && FactorSum(t)==i) 
    			sum+=i;
    		i++;
    	}
    	printf("%d\n",sum);
    	return 0;
    }
    

    Answer:
    31626

  • 相关阅读:
    基本运算符
    格式化输出
    Python与用户的交互
    数据类型
    变量
    正则表达式
    vuex方法
    vue的webpack打包步骤
    浮动问题
    媒体查询技术
  • 原文地址:https://www.cnblogs.com/cpoint/p/3367356.html
Copyright © 2011-2022 走看看