创建一个用于过滤素数的Ruby函数可以使用以下代码:
# 判断一个数是否为素数
def is_prime?(num)
return false if num <= 1
return true if num <= 3
return false if num % 2 == 0 || num % 3 == 0
i = 5
while i * i <= num
return false if num % i == 0 || num % (i + 2) == 0
i += 6
end
return true
end
# 过滤素数
def filter_primes(numbers)
primes = []
numbers.each do |num|
primes << num if is_prime?(num)
end
return primes
end
# 示例用法
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_primes = filter_primes(numbers)
puts filtered_primes.inspect
这个函数包含两个部分:is_prime?
函数用于判断一个数是否为素数,filter_primes
函数用于过滤素数。
is_prime?
函数首先判断输入的数是否小于等于1,如果是则返回false
。然后判断是否小于等于3,如果是则返回true
。接下来判断是否能被2或3整除,如果能则返回false
。然后使用6的倍数±1的规律判断是否能被其他数整除,如果能则返回false
。最后返回true
,表示是素数。
filter_primes
函数接受一个数字数组作为输入,遍历数组中的每个数字,调用is_prime?
函数判断是否为素数,如果是则将其添加到primes
数组中。最后返回primes
数组,即过滤出的素数数组。
示例用法中创建了一个数字数组numbers
,然后调用filter_primes
函数过滤素数,并打印结果。
这个函数可以用于过滤任意数字数组中的素数,例如在处理大量数据时,可以使用该函数快速过滤出素数,以便进行后续的处理。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅为示例,具体产品和服务选择应根据实际需求进行评估和选择。
领取专属 10元无门槛券
手把手带您无忧上云