Java实现特定范围的完数输出算法示例

 更新时间:2017年12月14日 10:44:45   作者:Hisom  
这篇文章主要介绍了Java实现特定范围的完数输出算法,简单说明了完数的概念、计算原理并结合实例形式分析了java针对给定范围内的完数输出操作实现技巧,需要的朋友可以参考下

本文实例讲述了Java实现特定范围的完数输出算法。分享给大家供大家参考,具体如下:

题目内容:

一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。

例如6=1+2+3(6的因子是1,2,3)。

现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。

提示:可以写一个函数来判断某个数是否是完数。

输入格式:

两个正整数,以空格分隔。

输出格式:

其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一个空行。

输入样例:
1 10
输出样例:
6

代码示例:

import java.util.Scanner;
public class Main {
  //判断是否是完数
  public static boolean isFinishedNum(int n)
  {
    //排除干扰1、2
    if((n==1)||(n==2))
      return false;
    boolean isFinishedNum = false;
    int sum=1;
    for(int i =2;i<n;i++)
    {
      if(n%i==0)
        sum+=i;
    }
    //如果相等就是完数
    if(sum==n)
      isFinishedNum = true;
    return isFinishedNum;
  }
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("脚本之家 - 特定范围内的完数输出测试:");
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    int m = in.nextInt();
    String out = " ";
    for(int i =n;i<=m;i++)
    {
      if(isFinishedNum(i))
        out = out+i+" ";
    }
    //去除out左右两边的空格
    out=out.trim();
    System.out.println(out);
    in.close();
  }
}

运行结果:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Idea创建springboot不能选择java8的解决

    Idea创建springboot不能选择java8的解决

    在IDEA 2023版本创建Spring Boot项目时,发现没有Java 8选项,只有Java 17和Java 20,解决方法包括:通过修改服务器URL(推荐)或直接在创建后修改pom.xml文件中的Spring Boot和Java版本
    2025-01-01
  • 带你重新认识Java动态代理

    带你重新认识Java动态代理

    这篇文章主要为大家介绍了Java的动态代理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • Java concurrency之AtomicReference原子类_动力节点Java学院整理

    Java concurrency之AtomicReference原子类_动力节点Java学院整理

    AtomicReference是作用是对"对象"进行原子操作。这篇文章主要介绍了Java concurrency之AtomicReference原子类,需要的朋友可以参考下
    2017-06-06
  • Java classloader和namespace详细介绍

    Java classloader和namespace详细介绍

    这篇文章主要介绍了Java classloader和namespace详细介绍的相关资料,需要的朋友可以参考下
    2017-03-03
  • MyBatis SpringMVC整合实现步骤详解

    MyBatis SpringMVC整合实现步骤详解

    这篇文章主要介绍了MyBatis SpringMVC整合实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java关于jar包的知识详解

    Java关于jar包的知识详解

    这篇文章主要介绍了Java关于jar包的知识,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • SpringBoot+SpringSecurity实现基于真实数据的授权认证

    SpringBoot+SpringSecurity实现基于真实数据的授权认证

    Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架,Spring Security主要做两个事情,认证、授权。这篇文章主要介绍了SpringBoot+SpringSecurity实现基于真实数据的授权认证,需要的朋友可以参考下
    2021-05-05
  • 基于java涉及父子类的异常详解

    基于java涉及父子类的异常详解

    下面小编就为大家带来一篇基于java涉及父子类的异常详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Java编程中使用lambda表达式的奇技淫巧

    Java编程中使用lambda表达式的奇技淫巧

    这篇文章主要介绍了Java编程中使用lambda表达式的奇技淫巧,使用Lambda表达式可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂,是Java8开始推出的人们期待已久的功能,需要的朋友可以参考下
    2016-03-03
  • springboot 使用logback启动报警报错的解决

    springboot 使用logback启动报警报错的解决

    这篇文章主要介绍了springboot 使用logback启动报警报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论