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 等是不是完全平方数的数字。
算法:
- 固定间隔
- 求数的因数
- 求和
- 检查等效性
- 相应地选择
- 增量数
- 以这种方式继续,直到到达间隔结束。
Example :
Find the perfect and non-perfect numbers upto 10 numbers starting from 1 ?
Output:
[1] “1 is not a perfect number”
[1] “2 is not a perfect number”
[1] “3 is not a perfect number”
[1] “4 is not a perfect number”
[1] “5 is not a perfect number”
[1] “6 is a perfect number”
[1] “7 is not a perfect number”
[1] “8 is not a perfect number”
[1] “9 is not a perfect number”
[1] “10 is not a perfect number”
示例 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
输出:
[1] “1 is not a perfect number”
[1] .
[1] .
[1] “6 is a perfect number”
[1] “7 is not a perfect number”
[1] .
[1] .
[1] “27 is not a perfect number”
[1] “28 is a perfect number”
[1] .
[1] .
[1] “495 is not a perfect number”
[1] “496 is a perfect number”
[1] .
[1] .
[1] “500 is not a perfect number”
示例 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
输出:
(perfect_numbers)
[1] 6 28
(non_perfect_numbers)
[1] 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[20] 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40
[39] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
[58] 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
[77] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
[96] 98 99 100