R 语言检查质数的程序


2023 年 2 月 4 日, 学习 eTutorial
8654

什么是质数和合数?

质数是指一个大于1的整数,除了1和它本身以外不再有其他因数。除了质数之外的其他数字都是合数。例如,2、3、5、7、11、13 等是质数,因为它们只有2个因数,而数字 '4'、'6',有多个因数,因此是合数。 

check prime number

注意:数字 '1'不是质数,因为它只有一个因数。

如何检查给定数字是否为质数?

下面是检查数字是否为质数的步骤。

  1. 从用户那里接受一个数字。
  2. 找出该数字的所有因数。能够整除一个数字的整数是该数字的因数。
  3. 如果因数的数量大于2,那么输入的数字就不是质数,否则就是质数。 

如何编写 R 语言程序来检查数字是否为质数?

在这个 R 语言程序中,我们使用 'prompt' 向用户提供一个适当的消息,并将用户的值接受到变量 num 中。我们可以使用 readline() 函数从用户(终端)那里获取输入。这里 prompt 参数可以选择为用户显示一个适当的消息。检查给定的数字是否大于1,因为质数必须大于1。检查 num 是否能被从 2num – 1 的任何数字整除,如果在该范围内找到一个因数,则将 isPrime = 0,否则将 isPrime = 1。如果 isPrime == 1,则打印消息“该数字是质数”,否则打印“该数字不是质数”。

算法

第一步:使用 readline() 将用户输入接受到变量 num

第二步:首先将 isPrime 设置为 0

第三步:检查 num 是否大于 1,如果是,则执行步骤 4、5

第四步:将 isPrime 设置为 1

第五步:从 2num – 1 开始一个 for 循环,并检查 num 是否能被任何数字整除,

第五步.1:如果在该范围内找到一个因数,则将 isPrime 重置为 0 并从循环中 break

第六步:如果 num 是 2,则将 isPrime 设置为 1

第七步:检查 isPrime == 1,然后 print 该数字是质数,否则 print 该数字不是质数

R 源代码

                                          num     = as.integer(readline(prompt = "Enter a number: "))
# num  = 15
isPrime = 0
if (num > 1) {
    isPrime = 1
    for (i in 2: (num - 1)) {
        if ((num %% i) == 0) {
            isPrime = 0
            break
        }
    }
}
if (num == 2) isPrime = 1
if (isPrime == 1) {
    print(paste(num, "is a prime number"))
} else {
    print(paste(num, "is not a prime number"))
}
                                      

输出

Enter a number: 15
[1] "15 is not a prime number"

Enter a number: 13
[1] "13 is a prime number"