You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改R语言的print_factors函数使其仅返回质因数?

解决方案

要实现只返回输入数字因数中的质数,你可以分两步操作:先编写一个判断质数的辅助函数,再修改原函数筛选出符合条件的因数。

1. 编写质数判断函数

先实现is_prime函数,用来检查单个数字是否为质数:

is_prime <- function(n) {
  if (n <= 1) return(FALSE)  # 1及以下的数不是质数
  if (n == 2) return(TRUE)   # 2是唯一的偶质数
  if (n %% 2 == 0) return(FALSE)  # 大于2的偶数都不是质数
  # 检查从3到sqrt(n)的奇数是否能整除n
  for (i in seq(3, sqrt(n), by = 2)) {
    if (n %% i == 0) return(FALSE)
  }
  return(TRUE)
}

2. 修改原函数筛选质数因数

基于原有的因数查找逻辑,先收集所有因数,再用is_prime筛选出其中的质数:

get_prime_factors <- function(k) {
  # 收集所有因数
  factors <- c()
  for(i in 1:k) {
    if((k %% i) == 0) {
      factors <- c(factors, i)
    }
  }
  # 筛选因数中的质数
  prime_factors <- factors[sapply(factors, is_prime)]
  # 返回结果(若需要直接打印可添加print(prime_factors))
  return(prime_factors)
}

测试示例

输入12,它的因数是1、2、3、4、6、12,其中质数为2和3:

get_prime_factors(12)
# 输出: [1] 2 3

输入17(质数),它的因数是1和17,其中质数为17:

get_prime_factors(17)
# 输出: [1] 17

内容的提问来源于stack exchange,提问作者HAPPY DUMMY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:55:14