跳到主要内容

R语言程序:检查质数

通过控制语句来检查用户输入的整数是否为素数的示例。

要理解这个示例,您应该掌握以下R编程主题:

大于1的正整数,除了1和它本身之外没有其他因子的整数被称为素数。

数字2、3、5、7、11、13等都是素数,因为它们没有其他因子。

但是,6不是素数(它是合数),因为2 x 3 = 6

示例:检查素数

# 检查输入的数字是否为素数的程序

# 从用户那里获取输入
num = as.integer(readline(prompt="输入一个数字:"))

flag = 0
# 素数大于1
if(num > 1) {
# 检查因子
flag = 1
for(i in 2:(num-1)) {
if ((num %% i) == 0) {
flag = 0
break
}
}
}

if(num == 2) flag = 1
if(flag == 1) {
print(paste(num,"是素数"))
} else {
print(paste(num,"不是素数"))
}

输出 1

输入一个数字:25
[1] "25 不是素数"

输出 2

输入一个数字:19
[1] "19 是素数"

在这里,我们从用户那里获取一个整数,并检查它是否是素数。小于或等于1的数字不是素数。

因此,我们只在num大于1的情况下继续。我们检查从2到num - 1之间的任何数字是否可以整除num

如果我们在这个范围内找到一个因子,那么这个数字就不是素数。否则,这个数字就是素数。

我们可以减少寻找因子的数字范围。

在上面的程序中,我们的搜索范围是从2到num - 1。

我们可以使用范围[2,num / 2]或[2,num ** 0.5]。后一个范围是基于以下事实的,即合数必须有一个小于该数平方根的因子。否则,该数是素数。