Funkcja liczby pierwotnej w R

Próbuję utworzyć funkcję do sprawdzenia, czy dana liczba całkowita jest liczbą pierwszą, próbowałem użyć następujących:

tpn <- function(prime.num){

    if(prime.num==2){
        print("PRIME")
    } else {

    if(prime.num%%(2:(prime.num-1))!=0){
        print("PRIME")

    } else { 
        print("NOT PRIME")

}}}

To nie działa, chociaż nie rozumiem dlaczego. Sprawdzam, czy dana liczba może być podzielona przez dowolną liczbę całkowitą aż do tego numeru bez pozostałości. Jeśli nie, to liczba jest pierwsza.

Innym rozwiązaniem, które znalazłem było:

tpn <- function(pn){

    if(sum(pn/1:pn==pn%/%1:pn)==2)
            print("prime")

}

To działa. Chociaż nie mogę się rozejrzeć, cosum(pn/1:pn == pn%/%1:pn) == 2 faktycznie testuje.

questionAnswers(11)

yourAnswerToTheQuestion