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 numbers.  
6.  
7.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.  
8.  
9.Evaluate the sum of all the amicable numbers under 10000  


1.package com.yao;  
2.  
3.import java.util.HashSet;  
4.import java.util.Set;  
5.  
6./** 
7. * Created by IntelliJ IDEA. 
8. * User: shuimuqinghua77 
9. * Date: 12-3-11 
10. * Time: 下午7:55 
11. */  
12.public class Problem21 {  
13.  
14.    public static void main(String[] args) {  
15.         int top=10000;  
16.         int  result=0;  
17.        Set<Integer> invalid=new HashSet<Integer>();  
18.        long start=System.currentTimeMillis();  
19.         for(int i=2;i<top;i++){  
20.             if(invalid.contains(i))  
21.                 continue;  
22.             int sum=sum(i);  
23.             if(sum<=top&&sum!=i&&i==sum(sum)){  
24.                 invalid.add(sum);  
25.                 result+=(sum+i);  
26.                 System.out.println("("+i+","+sum+")");  
27.             }  
28.  
29.         }  
30.        long end=System.currentTimeMillis();  
31.        System.out.println(end-start);  
32.        System.out.println(result);  
33.    }  
34.  
35.    private static int sum(int n) {  
36.        if(n==1)return 0;  
37.        int sum=1;  
38.        int middle=(int)Math.sqrt(n);  
39.        for(int j=2;j<=middle;j++){  
40.            if(n%j==0){  
41.                 int k=n/j;  
42.                if(k==j)  
43.                  sum+=j;  
44.                else  
45.                    sum+=(k+j);  
46.            }  
47.        }  
48.        return sum;  
49.    }  
50.}  


目录
相关文章
|
安全 Java
SpringBoot开发案例之整合mail队列篇
前言 前段时间搞了个SpringBoot开发案例之整合mail发送服务,也是基于目前各项目平台的邮件发送功能做一个抽离和整合。 问题 以发送方为例,比如网易的反垃圾邮件政策,过多或者频率过快的发送都会被判定为垃圾邮件,即使发再多的邮件也无济于事。
8129 0
|
人工智能 API 数据处理
把“ai模型+低代码”应用在项目管理中,效率翻了好几倍
随着ChatGPT大火之后,新的AI技术和模型被证明已经具备的很高的使用价值。诸如Copilot、Midjourney、notion等产品通过AI的加持,已经让用户能够充分地在应用层面感受到了便利性。原本几天的工作通过AI,可能只需要1分钟就能完成。可以大胆的预测,这种革命性的生产力突破将会在更多的领域开花结果。
|
Linux 开发工具 git
okcc呼叫中心外呼系统安装教程与小白上手使用
okcc呼叫中心系统常见的应用场景包括:筛选客户、客户回访维护、产品推荐、企业维护、债务提醒、信息咨询、业务办理、电话订购、车载导航等等,可应用的行业领域包括:金融、电销、保险、电商、教育、企业通信等。
3795 1
element-ui:el-autocomplete实现滚动触底翻页
element-ui:el-autocomplete实现滚动触底翻页
487 0
element-ui:el-autocomplete实现滚动触底翻页
|
机器学习/深度学习 Web App开发 弹性计算
Serverless 架构下的 AI 应用开发:入门、实战与性能优化
本章通过对 Serverless 架构概念的探索,对 Serverless 架构的优势与价值、挑战与困境进行分析,以及 Serverless 架构应用场景的分享,为读者介绍 Serverless 架构的基础内容。通过本章的学习,读者将对 Serverless 架构的理论基础有一定的了解和认识。
Serverless 架构下的 AI 应用开发:入门、实战与性能优化
|
Android开发 iOS开发
Desktop 和tablet 的区别?
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第16天,点击查看活动详情 大家好,我是阿萨。昨天有一个同事看到一句英文:it can display well in phone,desktop和tablet。她对这个tablet不太了解,问了下周围人。今天专门和大家一起学习一下
1090 0
|
开发框架 网络协议 算法
如果重新学计算机
「你尽管去学习操作系统、计算机网络、数据结构和算法等最基本的计算机知识,这一些肯定比你的职业生涯更持久」,我理解下来,如果是学习服务器开发,特别是业务系统和软件架构开发,服务器的知识点再深都不为过,至于用的哪一门开发语言和开发框架,只需要精通一门就好了,其他都是万变不离其宗的
|
Java Spring
intellij idea中spring boot properties文件不能自动提示问题解决
idea和sts里面都有对spring boot中properties文件的提示功能,而且可以通过点击属性可以进入到*Properties.java这类文件中。
9187 0