R程序在一个区间内查找素数和合数
一个自然数(1、2、3、4、5 等)如果大于 1 并且不能写成两个较小的自然数的乘积,则称为质数。大于 1 的不是质数的数称为合数。
合数是一个正整数,它可以由两个较小的正整数相乘而成。等效地,它是一个正整数,它至少有一个除 1 和它本身以外的除数。
例子:
Input: 2
Output: Prime
Explanation: it is divisible by only 2 so prime.
Input: 4
Output: Composite
Explanation: it is divisible by 2 and 4 so composite.
Input: 5
Output: Prime
Explanation: it is divisible by only 5 so prime.
算法:
- 初始化范围直到显示素数和合数。
- 创建一个单独的空列表来存储质数和合数。
- 由于 1 既不是质数也不是合数,
- 我们从 2 作为 i 开始检查素数的条件。
- 从 2 开始检查每一个能将 i 整除的数字
- 如果没有数字除以 i ,则数字将存储在素数列表中,
- 否则将存储在合数列表中。
- 它执行直到 n(由我们给出)限制达到。
- 一旦退出循环,它将素数和合数打印为单独的列表。
例子:
R
# R code for Finding composite and prime numbers upto 100
# initialize number n
n=100
# arranging sequence
x = seq(1, n)
# creating an empty place to store the numbers
prime_numbers=c()
composite_numbers = c()
for (i in seq(2, n)) {
if (any(x == i)) {
# prime numbers gets stored in a sequence order
prime_numbers = c(prime_numbers, i)
x = c(x[(x %% i) != 0], i)
}
else{
# composite numbers gets stored in a sequence order
composite_numbers = c(composite_numbers, i)
}
}
# printing the series
print("prime_numbers")
print(prime_numbers)
print("composite_numbers")
print(composite_numbers)
输出:
[1] “prime_numbers”
[1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
[1] “composite_numbers”
[1] 4 6 8 9 10 12 14 15 16 18 20 21 22 24 25 26 27 28 30
[20] 32 33 34 35 36 38 39 40 42 44 45 46 48 49 50 51 52 54 55
[39] 56 57 58 60 62 63 64 65 66 68 69 70 72 74 75 76 77 78 80
[58] 81 82 84 85 86 87 88 90 91 92 93 94 95 96 98 99 100