2017-02-19 6 views
0

현재 Pari GP를 사용하는 방법을 배우고 있으며 현재 사용자가 소수를 입력했는지 여부를 확인하는 코드를 작성하려고합니다.Pari GP - 사용자가 소수로 입력했는지 확인

여기 내 코드입니다.

printf("\t%s \n","PrimeNo(P): To check if it is a prime or not"); 

PrimeNo(p)={ 

if(isprime(p)||1, print("Prime numbers only")); 

if(isprime(p)||0, print("Prime numbers stored")); 

print(p); 

} 

문제는 처음 "만약"라인이 주요 아니라는 것을 확인하는 방식으로 작동하지만, 나는 소수의 핵심, 두 줄이 나타 났을 때.

누구든지 도움을 주시면 감사하겠습니다.

답변

0

if 문에는 각각 두 가지 테스트가 있으므로 이 소수 (첫 번째는 ifprime (p) OR1, 두 번째는 ifprime (p) 또는 0) 인 경우 모두 true입니다. 난 당신과 같이 할 생각 : 여기

PrimeNo(p) = { if(isprime(p), print("Yep"), print("Nope")); print(p); } 

우리가 PARI/GP의 경우의 경우 - 당시 다른 양식을 사용하고 있는지, 그래서 isprime (P)가 true와 두 번째 항목의 경우 경우, 우리는 첫 번째 항목을 그것은 거짓입니다. 이것은 또한 isprime을 한 번만 호출하는 이점이 있습니다. 숫자가 큰 경우 중요합니다 (ispseudoprimeisprime에 대한 토론도 있지만 64 비트 입력에는 차이가 없음).

+0

DanaJ 너무 감사드립니다. 당신은 생명의 은인입니다. –

+1

@JamesQuek PrimeNo (p) = {print (if (isprime (p), "Yep", "Nope"))를 쓸 수도 있습니다. print (p)}'를 사용하십시오. PARI의 모든 것은'if'를 포함한 함수입니다. –

관련 문제