[关闭]
@yexiaoqi 2022-05-20T08:39:34.000000Z 字数 630 阅读 338

HJ56. 完全数计算

刷题


题目:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
输入n,请输出n以内(含n)完全数的个数。

数据范围:1≤n≤5×10^5
输入描述:输入一个数字n
输出描述:输出不超过n的完全数的个数
示例

输入:1000
输出:3

链接:https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84


  1. public class Main {
  2. public static void main(String[] args){
  3. Scanner sc = new Scanner(System.in);
  4. while(sc.hasNext()){
  5. int n = sc.nextInt();
  6. int count = 0;
  7. for(int i=1; i<=n; i++){
  8. int sum = 0;
  9. //本身不算,剩下的最大的约数:如果是偶数的话为 i/2,如果是奇数,则比i/2还小
  10. for(int j=1; j<=i/2; j++){
  11. if(i%j == 0) {
  12. sum += j;
  13. if (sum > i) break;
  14. }
  15. }
  16. if (sum == i) {
  17. count++;
  18. //System.out.println(i);
  19. }
  20. }
  21. System.out.println(count);
  22. }
  23. }
  24. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注