题目描述
如果整数 a 是整数 b 的整数倍,则称 b 是 a 的约数。
请问,有多少个正整数是 2020 的约数。
如何判断一个数为整数
两种方法:
Math.round(n) == n //if true, then 是整数 否则不是
n % 1 == 0 //if true, then 是整数 否则不是
易错点
(double)(2020 / 3) 这样计算出来的是整数,因为 (2020 / 3) 先计算,结果为整数,再 double 也是整数 ((double)2020 / 3) 这样计算出来才是小数,因为 2020 / 3 没有计算,而是 double 之后才计算结果
解题代码
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
int sum = 0;
for(int i = 1;i <= Math.sqrt(2020);i++){
if(((double)2020 / i) % 1 == 0.0){
sum ++;
}
}
System.out.println(sum * 2);
}
}