学习目标:
目标:熟练运用Java所学知识
学习内容:
本文内容:使用java解决 完全数计算
题目描述
链接:https://www.nowcoder.com/questionTerminal/7299c12e6abb437c87ad3e712383ff84
来源:牛客网
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加1+2+4+7+14=28。
输入n,请输出n以内(含n)完全数的个数。计算范围, 0 < n <= 500000
本题输入含有多组样例。
输入描述:
输入一个数字n
输出描述:
输出不超过n的完全数的个数
示例1
输入
1000
7
100
输出
3
1
2
解题思路
- 首先获取数字num的除过自身的所有因子
- 将这些因子加起来,判断是否等于num,如果等于则计数器加一
实现代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int num = sc.nextInt();
int count=0;//计数器
for(int j=1;j<num;j++){
int sum=0;//记录和
for(int i=1;i<j;i++){
if(j%i==0){
//i是j的因子
sum+=i;
}
}
if(j==sum){
//如果相等,计数器加一
count++;
}
}
System.out.println(count);
}
}
}