📜  R程序在给定的范围内找到最多n个数字的完美数字

📅  最后修改于: 2022-05-13 01:55:23.330000             🧑  作者: Mango

R程序在给定的范围内找到最多n个数字的完美数字

给定一个范围,任务是编写一个 R 程序来打印该范围内的所有完全数。

等于其真除数之和的正整数称为完全数。最小的完全数是 6,它是 1、2 和 3 的和。其他完全数是 28、496 和 8,128。请注意,所有完全平方数都以 0、1、4、5、6 或 9 结尾,但所有以 0、1、4、5、6 或 9 结尾的完全数都不是完全平方数。例如,11、21、51、79、76 等是不是完全平方数的数字。

算法:

  • 固定间隔
  • 求数的因数
  • 求和
  • 检查等效性
  • 相应地选择
  • 增量数
  • 以这种方式继续,直到到达间隔结束。

示例 1:

R
for (k in 50:100) {
    n = k
    i = 1
    s = 0
  
    while (i < n) {
      if (n %% i == 0) {
        s = s + i
      }
      i = i + 1
    }
    if (s == n) {
      print(paste(n,"is a perfect number"))
    } else{
      print(paste(n,"is not a perfect number"))
    }
k=k+1
}


R
perfect_numbers = c()
non_perfect_numbers=c()
for (k in 1:100) {
    n <- k
    i = 1
    s = 0
  
    while (i < n) {
      if (n %% i == 0) {
        s = s + i
      }
      i = i + 1
    }
  
    if (s == n) {
      perfect_numbers = c(perfect_numbers, n)
    } else{
      non_perfect_numbers = c(non_perfect_numbers, n)
    }
}
print(perfect_numbers)
print(non_perfect_numbers)
k=k+1


输出:

示例 2:

电阻

perfect_numbers = c()
non_perfect_numbers=c()
for (k in 1:100) {
    n <- k
    i = 1
    s = 0
  
    while (i < n) {
      if (n %% i == 0) {
        s = s + i
      }
      i = i + 1
    }
  
    if (s == n) {
      perfect_numbers = c(perfect_numbers, n)
    } else{
      non_perfect_numbers = c(non_perfect_numbers, n)
    }
}
print(perfect_numbers)
print(non_perfect_numbers)
k=k+1

输出: