翁恺老师慕课零基础学JAVA语言【Day5】

完数实例

题目内容:

 


 

一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。

 


 

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

 


 

 

 


 

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

 


 

 

 


 

输入格式:

 


 

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

 


 

 

 


 

输出格式:

 


 

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

 


 

 

 


 

输入样例:

 


 

1 10

 


 

 

 


 

输出样例:

 


 

6

 

package lianxi;
import java.util.Scanner;

public class wanshu {
    
    public static boolean isPrime(int m) {
        int sum = 0;
        boolean isPrime = false;
        for(int i=1;i<m;i++) {
            if (m%i==0) {
                sum+=i;
            }
        }
        if(m==sum) {
            isPrime=true;
        }
        return isPrime;
    }
    

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int m=in.nextInt();
        int isFirstOut =0;
        for(int i=n;i<=m;i++) {
            if(isPrime(i)) {
                if(isFirstOut==1) {
                    System.out.print(" ");
                }
                isFirstOut=1;
                System.out.print(i);
        
            }
        }
        if(isFirstOut==0) {
            System.out.println();
        }

    }

}

期末考试错题

1.System不是java语言的关键字

2.

int i,j;
for ( i=0, j=10; i<10, j>0; i++, j--)

不能编译。i<10, j>0,中间不能用“,”,可用“&&”。

3.定义和创建数组的正确方式

int a[] = new int [5];
int a[] = {1,2,3,4,5};

4.有效的Java变量名:

标识符是以字母、下划线(_)或美元符($)开头,有字母、数字、下划线(_)或美元符($)组成的字符串。标识符区分大小写,长度没有限制。除以上所列几项外,标识符不能含有其他符号,当然也不允许插入空格。关键字不能作为标识符。在程序中,标识符可作为变量名、接口名、类名等。

5.

以下哪个表达式表示“当 x 的取值在 [-10, 0]  的范围内,结果为真,否则为假”


  • A.

    x within [-10, 0]

  • B.

    x>=-10&&x<=0

  • C.

    x in [-10, 0]

    0.00/2.00
  • D.

    -10 <=x<=0

B

6.假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是:ch=ch+32

7.

if ( a==b ) else System.out.println("no");

不能编译

8.数组的下标可以是整型常数或表达式,如

arrayName[1]
arrayName[i]
arrayName[6*i]

9.int的范围比long窄

10.

AVA数组的大小必须在写程序时就确定吗?

答案是否定的,很显然,chars1 的长度可以使用常量 10,也可以使用变量 n 代替。

这个 n 显然是在编译期未知的,在运行时才能知道。

int n; // 从其他来源处获取 n 的值
char[] chars1 = new char[n];
上一篇:Day5 Java变量命名规范


下一篇:java并发编程(7) 共享模型之工具 - stampedLock、semaphore、CountdownLatch、CyclicBarri