¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Îº÷°ú http://toro.2ch.net/test/read.cgi/tech/1370255305/35 # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°µ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§É¸½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£ # ¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£ # 'ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·¡¢£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¡¢¼Â¹Ô¤»¤è¡£ ¼Â¹Ô»þ¤Ë¤ÏX = 50¤È¤Ê¤ë¤è¤¦¤Ë¿ô»ú¤òÆþÎϤ¹¤ë¡£' :- ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X). ɸ½àÆþÎϤ«¤éÀµ¤Î¿ôX¤òÆþÎϤ·(X) :- À°¿ô¤òÆÀ¤ë(Àµ¤ÎÀ°¿ôX,X > 0,X). '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á¡¢ÁÇ¿ô¤À¤±¤ò½ÐÎϤ¹¤ë'(X) :- ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó), '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(_À°¿ô), ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_À°¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), X = _À°¿ô. ÁÇ¿ô¤À¤±ÁªÊ̤¹¤ë(X,_ÁÇ¿ô¤Ê¤é¤Ó) :- '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó,_ÁÇ¿ô¤Ê¤é¤Ó). '2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó'(_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó) :- findall(N,between(2,X,N),_2¤«¤éX¤Þ¤Ç¤Î¤Ê¤é¤Ó). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ([A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(A,R1,L), ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(L,R2). ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(_,[],[]) :- !. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],R2) :- 0 is A mod N, ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2),!. ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,[A|R1],[A|R2]) :- ¥¨¥é¥È¥¹¥Æ¥Í¥¹¤ÎäÁ(N,R1,R2). '£±¤«¤éX¤Þ¤Ç¤ÎÀ°¿ô¤Î¤¦¤Á'(_À°¿ô) :- between(1,X,_À°¿ô). ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó) :- member(_ÁÇ¿ô,_ÁÇ¿ô¤Ê¤é¤Ó), writef('%t ',[_ÁÇ¿ô]),!. ÁÇ¿ô¤À¤±½ÐÎϤ¹¤ë(_,_).