【头歌】【educoder】【java】完数难题

题目描述

        小明正在进行期末数学考试,现在他遇到了这样一个题:如果一个大于 1 的正整数的所有因子之和等于它的本身,则称这个数是完数,比如 628 都是完数:6=1+2+328=1+2+4+7+14。请判断两个正整数之间完数的个数。小明想请聪明的你帮帮他。

输入输出格式

输入格式

        输入包含两个正整数 n1n2 ,表示题目描述中的数据范围。 正整数之间以空格间隔。

输出格式

        针对输入,请打印出 n1n2 之间(包括边界)存在的完数个数。

输入输出样例1

输入

2 5

输出

0

输入输出样例2

输入

5 7

输出

1

说明提示

1<n1,n2<10000

【Java代码及解题思路】

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 输入n1,n2
        int n1,n2;
        Scanner scanner = new Scanner(System.in);
        n1 = scanner.nextInt();
        n2 = scanner.nextInt();
        // 区间内完数的个数
        int num = 0;

        // 从n1遍历到n2
        for(int i = n1;i<n2;i++){
            // 该数全部因子的和
            int sum = 0;
            // 寻找因子
            for(int j = 1;j < i;j++){
                // 若j为该数的因子
                if(i%j == 0){
                    // 相加
                    sum =sum + j;
                }
            }
            // 若该数全部因子的和==该数,则区间内完数的个数+1
            if(sum == i){
                num ++;
            }
        }
        // 输出
        System.out.println(num);
    }
}

### 回答1头歌educoderjava面向对象是指在Java编程中,采用面向对象的编程思想,将程序中的数据和操作封装成对象,通过对象之间的交互来完成程序的功能。这种编程方式可以提高代码的可读性、可维护性和可扩展性,使程序更加灵活和高效。 ### 回答2: Educoder Java课程中的头歌是关于面向对象编程的内容。面向对象编程是一种编程思想,通过将数据和操作数据的方法封装在一起,以对象的形式组织和管理代码,提高代码的可维护性和可扩展性。 在Java中,面向对象编程的核心是类和对象。类是一种自定义的数据类型,可以定义类的属性和方法来描述对象的特征和行为。而对象是类的一个实例化,具有类属性和方法的特征和行为。 在面向对象编程中,还有三个重要的概念:封装、继承和多态。封装是指将数据和方法封装在一起,对外部隐藏其实现细节,只提供接口给外部使用。继承是指子类继承父类的属性和方法,可以在子类中添加新的属性和方法或覆盖父类的方法。多态是指同一对象在不同情况下的不同表现形式,比如通过子类对象调用重写的父类方法。 Java还提供了接口、抽象类、枚举等特性来扩展面向对象编程的功能,并且有丰富的类库可以方便地操作常见的数据结构和算法。 在Educoder Java课程中,学习面向对象编程可以让我们更好地组织和管理代码,提高代码的可读性、可维护性和可扩展性,从而更好地完成编程任务。同时也可以为后续学习Java Web开发和Android移动应用开发打好基础。 ### 回答3: Educoder Java面向对象是一门面向对象的编程语言课程,学习者将通过此课程学习Java编程语言中的面向对象编程思想,并学习如何使用Java语言进行面向对象编程的实践操作。 在Java语言中,所有的数据和方法都是以类的形式组织的,因此,学生需要掌握类、对象、封装、继承和多态等面向对象编程的核心概念。 学生将学习到Java语言中的类和对象的定义方法,如何定义类的属性和方法,如何创建对象并调用对象的属性和方法。另外,学生还将了解Java语言中的访问控制修饰符,如何使用封装性来保护类的属性和方法,以及如何使用继承来重用代码。 在本课程中,学生还将学习Java中的多态、抽象类和接口等概念以及如何使用它们来设计高效的程序。 此外,本课程还涵盖了Java中的异常处理、文件IO等实际应用场景,帮助学生掌握Java语言的完整编程技能。 综上所述,Educoder Java面向对象课程将为学生提供一个全面而深入的Java编程语言的学习体验,让学生掌握Java语言的核心概念和技能,为学生的未来发展奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值