% 商品データ
% product(商品名, 価格, 評価, レビュー数).

product(item1, 3000, 4.8, 20).
product(item2, 1800, 4.2, 200).
product(item3, 5000, 4.9, 5).
product(item4, 2500, 4.5, 80).

% 価格が3000円以下の商品
cheap_product(Name, Price) :-
    product(Name, Price, _, _),
    Price =< 3000.

% 評価が4.5以上の商品
high_rating_product(Name, Rating) :-
    product(Name, _, Rating, _),
    Rating >= 4.5.

% レビュー数が50件以上の商品
popular_product(Name, Reviews) :-
    product(Name, _, _, Reviews),
    Reviews >= 50.

% 評価が高く、レビュー数も多いおすすめ商品
recommended_product(Name) :-
    product(Name, _, Rating, Reviews),
    Rating >= 4.5,
    Reviews >= 50.

% Ideoneで実行するためのmain
main :-
    write('3000円以下の商品:'), nl,
    forall(
        cheap_product(Name, Price),
        (
            write(Name),
            write(' 価格: '),
            write(Price),
            nl
        )
    ),
    nl,

    write('評価が4.5以上の商品:'), nl,
    forall(
        high_rating_product(Name2, Rating),
        (
            write(Name2),
            write(' 評価: '),
            write(Rating),
            nl
        )
    ),
    nl,

    write('レビュー数が50件以上の商品:'), nl,
    forall(
        popular_product(Name3, Reviews),
        (
            write(Name3),
            write(' レビュー数: '),
            write(Reviews),
            nl
        )
    ),
    nl,

    write('おすすめ商品:'), nl,
    forall(
        recommended_product(Name4),
        (
            write(Name4),
            nl
        )
    ).

:- initialization(main).