完数实例
题目内容:
一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如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];