利用Java寻找完美数

今天在笔试的时候遇到一个求完美数(至于什么叫完美数,可以百度)的题,当时手写代码没写完,下来又想了一下,在电脑上完成了此题目,记录一下。
下面上代码:

import java.util.ArrayList;
import java.util.List;public class Demo {ArrayList<Integer> list =new ArrayList();public List<Integer> fn(){for(int i = 0; i<10000;i++){for(int n = 2;n<i;n++){if(f((int) Math.pow(2,n)-1)){if(i ==Math.pow(2,n-1)*(Math.pow(2,n)-1)) {list.add(i);System.out.println(i);}}}}return list;}//判断是否为质数public boolean f(int a){boolean b = false;for(int i =2;i<a;i++){if(a%i == 0){b = false;break;}else {b = true;}}return b;}public static void main(String[] args) {Demo demo = new Demo();demo.fn();}
}

程序运行结果如下:

但是此代码只是简单的实现了求出前4个完美数,如果要求第五个数33550336,则需要花费相当长的时间,所以代码的运行效率极低,还需要进一步优化与改进。
并且笔试时题目是要求2^63-1之前的所有完美数,照目前代码的运行情况,看来任务是还没完成啊!

利用Java寻找完美数相关推荐

  1. Python实现寻找完美数问题

    寻找完美数 何为完美数? 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它 ...

  2. python 寻找水仙花、寻找“完美数”、 百钱百鸡问题、斐波那契数列、craps掷骰子游戏

    # coding-utf-8 # 寻找水仙花数 import mathfor num in range(100, 1000):num = str(num)a = int(num[0])b = int( ...

  3. 7-5 寻找完美数* (30 分)

    7-5 寻找完美数* (30 分) 所有真因子之和小于其本身的数称为亏数.如:4 的真因子 1.2 之和为 3,小于 4,是亏数. 所有真因子之和大于其本身的数称为盈数.如:12 的真因子 1.2.3 ...

  4. python 寻找完美数_寻找完美的鼠标

    python 寻找完美数 I have a small problem. I'm always looking for great computer mice. I've tried a number ...

  5. 7-37 寻找完美数* (30分)

    所有真因子之和小于其本身的数称为亏数.如:4 的真因子 1.2 之和为 3,小于 4,是亏数. 所有真因子之和大于其本身的数称为盈数.如:12 的真因子 1.2.3.4.6 之和为 16,大于 12, ...

  6. Java 寻找幸运数

    题目描述 定义一个方法static int ndigit(int n,int k),用来判断某个整数n中数字k(0~9)的个数. 编写主方法,其中输入一个整数m,后面跟m个整数,然后调用方法ndigi ...

  7. 4.2寻找水仙花数(阿姆斯特朗数)、完美数,生成斐波那契数列,Craps赌博游戏

    寻找阿姆斯特朗数 水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯 ...

  8. C++ 寻找完数 | Java 完数

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为&q ...

  9. 【每周一算】完美数,java获取

    以下来自百度百科: 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子 ...

  10. java calendar日期计算_利用Java中Calendar计算两个日期之间的天数和周数

    前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...

最新文章

  1. 华为机考HJ2计算字符个数
  2. Python爬虫 解析库的使用
  3. no router configuration contained in extension component metadata
  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]45.描述一些对抗RSA侧信道攻击的防御方法
  5. VMware workstation 15.5.2及镜像文件下载
  6. LeetCode题库5:最长回文子串——JavaScript解答
  7. 嵌入式单片机STM32元器件晶振选型参考
  8. 牛逼! IDEA 2020 要本土化,真的是全中文了!中国开发者话语权越来越大了
  9. [VC]socket含义
  10. linux刷新本地dns命令_如何刷新本地DNS缓存
  11. element-ui MessageBox 弹框判断确认和取消
  12. TX2与PCA9685驱动舵机(RACECAR)
  13. MongoSocketOpenException: Exception opening socket
  14. html+圆角六边形,CSS3 圆角六边形
  15. 使用ping检测MTU值
  16. docker内存满了
  17. 淘宝店铺怎么发逛逛?发逛逛有什么要求?
  18. outlook邮箱邮件大小限制_Office Outlook 2010、2013附件大小超过了允许的范围限制三种解决方法图解...
  19. python制作一个密码簿_[python]制作密码薄,完成增删改查和文件存储功能。
  20. 28所示范性微电子院校占地面积排名,中山大学第一!

热门文章

  1. JavaScript 关灯游戏
  2. cass简码大全_Cass简码成图
  3. Ubuntu上成功安装永中office2009
  4. SQL常见的一些面试题
  5. 路由与交换技术考试常见问答
  6. 小米android11账号补丁,小米9 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...
  7. strcmp函数用法
  8. HTML+JS实现页面跳转
  9. 日期/时间控件DateTimePicker
  10. Python基础教程,Python入门教程(超详细)