いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch57:デフォルトの名無しさん
09/12/24 22:41:59
>>56
% Prolog

'20000~40000までの自然数のうち、数字の9を2個含む素数の個数'(_個) :-
  素数生成(40000,_素数ならび),
  count((member(N1,_素数ならび),N1>=20000,数字の9を2個含む(N1)),_個).

数字の9を2個含む(N) :-
  number_chars(N,L),
  count(member('9',L),2),!.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
素数生成(N,X) :-
  findall(M,for(2,M,N),L),
  エラトステネスの篩(L,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).


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch