改进R语言代码使输出的结果中同一行后两列两个数值不能相等:prime_sum - functionn primes - prime_numbersn # 获取 n 以内的所有质数 even - seq2 n by = 2 # 生成偶数序列 result - c # 用于存储结果的向量 fori in even count - 0 # 计数器用于记录当前偶数满足条件的组数 for
prime_sum <- function(n){ primes <- prime_numbers(n) # 获取 n 以内的所有质数 even <- seq(2, n, by = 2) # 生成偶数序列 result <- c() # 用于存储结果的向量 for(i in even){ count <- 0 # 计数器,用于记录当前偶数满足条件的组数 for(j in primes){ if(j > i/2){ # 如果当前质数已经大于偶数的一半,则退出循环 break } if(is_prime(i-j) && count < 2){ # 如果 i-j 是质数且当前偶数满足条件的组数小于 2,则将 j 和 i-j 加入结果 count <- count + 1 if(count == 1){ # 如果是第一组,则直接加入结果 result <- c(result, i, j, i-j) } else { # 如果是第二组,则判断前一组是否有与之相等的数值,如果有则跳过,否则加入结果 if(result[length(result)-2] != i || result[length(result)-1] != j || result[length(result)] != i-j){ result <- c(result, i, j, i-j) } } } } } return(matrix(result, ncol = 3, byrow = TRUE)) # 将结果转换为矩阵形式输出 }
prime_sum(1000
原文地址: https://www.cveoy.top/t/topic/ferM 著作权归作者所有。请勿转载和采集!