2017-09-18 14 views
2

PARI/GP를 처음 사용하여 다른 번호 필드에 대해 학습했습니다. 나는 다음과 같은 스크립트를 실행 bnfinit (23 원 분체)를 사용하여 필드 k = Q(\zeta_23) 구성하기 위해 노력하고 있습니다 :bnfinit()에서 필드를 생성하는 방법은 무엇입니까?

v=[]; w=[]; j=0; l=0; 
forprime(p=29, 100000, { 
    if(p%46==1, j++; if(#bnfisintnorm(k,p)>0,l++;w=[p];v=concat(v,w))) 
}); 
print("Up to 100000 there are ",j," primes congruent to 1 mod 46 and ",l," are norms of principal ideals") 

가 GP로 실행하면 이것은 소수의 페이지 등을 찾을 예정이다

<=1,j++;if(#bnfisintnorm(k,p)>0,l++;w=[p];v=concat(v,w))));print("Up to 100000 there are ",j," primes congruent to 1 mod 46 and ",l," are norms of principal ideals") 

*** at top-level: ...00000,if(p%46==1,j++;if(#bnfisintnorm(k,p)>0, 
***            ^-------------------- 
*** bnfisintnorm: incorrect type in checknf [please apply nfinit()] (t_POL). 
(18:29) gp > 

이 오류를 제공합니다 K 필드에 대수적 정수가 있고, norm p가있다.

도움이 필요하십니까? 감사.

답변

2

숫자 필드를 k = bnfinit(polcyclo(23))과 같이 정의 할 수 있습니다. 그러면 코드가 출력됩니다 :

gp> Up to 100000 there are 429 primes congruent to 1 mod 46 and 141 are norms of principal ideals 

희망이 있습니다.