SWI-Prologの制約論理ライブラリ

ネットで見かけた以下の問題

「自然数のうち、3乗すると下3桁が999になるものを1つ挙げよ」

ここ数年のマイブームである制約論理ライブラリを使うと一瞬で解けます。自分が使っているのはSWI-PrologのCLPFDライブラリなのですが、プログラムは以下のみ


X in 1..9999999999999999,X^3 mod 1000 #= 999,label([X]).

実行結果は以下

X = 999 ;
X = 1999 ;
X = 2999 ;
X = 3999 ;
X = 4999 ;
X = 5999 ;
X = 6999 ;
X = 7999 ;
X = 8999 ;
X = 9999 ;
X = 10999 以下Xが9999999999999999になるまで延々と続く

こういう問題を大量に解く必要がある案件があれば是非弊社にお問い合わせ下さい!笑

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>