nikuNIKUの奮闘記

とある学生が数学科の院進を夢見るブログ

素イデアル分解を求めるプログラム PARI/GP

昨日から、a~bまでの素数をまとめて素イデアル分解したいって思いながら慣れないPARI/GPを使ってプログラムを作ってたら今朝ようやく上手くいったので備忘録的に書いておきます。

 

頭が回っていないです

 

ではまず体を決めるところから

 

K=nfinit(x^3-3)

 

↑これは体を決めるところですが、KというのをQの拡大体として定義するようです

で、どんな拡大体なのかというと、上の文だとKは多項式x^3-3の最小分解体とするってことです。

 

つまり望む体にするにはその単拡大となるような元を見つけ、その最小多項式を書けばいいわけです

(例:Q(√3)⇒K=nfinit(x^2-3)など)

 

イデアル分解をするための関数が

idealprimedec(K,a)

となっていて、aに好きな素数を入れるとその素数を素イデアル分解してくれます

 

で、問題のプログラムですがこちら↓

forprime(p=a,b,{
s=idealprimedec(K,p);
printf("%s\n",s);
})

 

このa,bに好きな数字を入れることでaからbまでの素数を分解してくれます

 

なので、僕のような初心者の方のためにどのように書けばいいかをわかりやすく書くと

 

K=nfinit(x^3-3) ←体(整数環)を決める

 

forprime(p=a,b,{
s=idealprimedec(K,p);
printf("%s\n",s);
})

 

と打てばいいわけです

 

c言語のつもりで書いていると全然実行できないことが多々あったので手探りの状況でした……

 

ちなみに2/3を後輩に教えてもらいました

 

いやもうほんと眠いけど1時間後に講義が始まるので辛いです