このディレクトリの索引 http://pc12.2ch.net/test/read.cgi/tech/1274827528/479 # [1] 授業単元:プログラミング演習 # [2] 問題文(含コード&リンク):オイラーの定理の仮証明 # # 互いに素なnとaについてオイラーの定理が成り立つか確かめる。 # とりあえずnは1以上5以下の数とし、aは1以上n以下とする。 # http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10654.txt 互いに素なnとaについてオイラーの定理が成り立つか確かめる :- findall(_n,( for(1,_n,5), 互いに素なnとaについてオイラーの定理が成り立つか確かめる(_n)), L), length(L,5). 互いに素なnとaについてオイラーの定理が成り立つか確かめる(_n) :- findall(Mod,( 互いに素なnとa(_n,_a), オイラー関数(_n,Z), Mod is (_a ^ Z) mod _n), L), all(L,1),!. 互いに素なnとa(_n,_a) :- findall(M,for(1,M,_n-1),L), 組み合わせ(L,2,[_n,_a]), 最大公約数(_n,_a,1). オイラー関数(_n,Z) :- count((for(1,M,_n-1),\+(0 is _n mod M)),Z).