Получить вектор, состоящий из простых чисел, в качестве выходных данных из заданного входного вектора.Работал в Python, где я добавлял каждое простое число из списка ввода в пустой список, но не получал правильного вывода в R
Код Python:
def get_prime(input_list):
output_list = []
for num in input_list:
for i in range(2, num):
if num%i == 0:
break
else:
output_list.append(num)
return output_list
Вывод:
get_prime([3,4,5,6,7,8])
[3, 5, 7]
R Код:
get_prime <- function(input_number_vector){
prime = c()
for(num in input_number_vector){
for(div in 2:(num-1)){ if(num %% div == 0) break
else prime = c(prime,num)
}
}
prime
}
Вывод:
x <- c(3,4,5,6,7,8)
> get_prime(x)
[1] 3 5 5 5 7 7 7 7 7
Ожидаемый вывод:
3,5,7
Похож на нечетные числа: 3, 5,7 добавляются один раз для каждой проверки состояния модуля.т.е. 3 раза с делителем 2,5, трижды с делителями 2,3,4 и 7 с делителями 2,3,4,5,6.Может кто-нибудь сообщить мне, где я иду не так, и если R работает в этом отношении иначе, чем Python.