练习1:通过键盘输入一个数字,打印其所有因子并对所有因子求和(因子不包含自己)因子就是能被这个数整除的数字例如:10的因子有 12 5
public class TestScanner
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = scan.nextInt();//i就是从键盘上输入的整数
System.out.print(i+"的因子有:");
int sum = 0;
for (int j = 1; j <i; j++) {
if (i%j==0) { //i除j能余0,j就是因子
sum += j;
System.out.print(j+" ");
}
}
System.out.println();
System.out.println(i+"的因子和为"+sum);
}
}
练习2:
通过键盘输入一个数字,判断该数字是否为质数
质数:只能被1和自己整除的数字
本来的答案是:
public class TestScanner {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数:");
int i = scan.nextInt();
for (int j = 2; j < i; j++) {
if (i % j == 0) {
System.out.print(i + "不是质数");
return;//刚开始不知道使用return。一直没成功。
//当然,现在知道用。但具体使用还是得等老师讲授。
}
}
System.out.println(i + "是质数");
}
}
但是后来发现“0”和“1”既不是质数也不是合数,而输出“0”和“1”却都显示为质数,因此,只好在
System.out.println(i + "是质数");
这句话上边添加一句
if (i == 1||i==0) {
System.out.println(i + "即不是质数也不是合数");
}
else
测试后发现,这样子应该就可以了吧。