ヒント
まずはAが嘘つきである場合について考えていきましょう。
Aの発言は「私の順位は素数である」です。今回は4人でマラソンをしているので、順位は1位、2位、3位、4位の4つです。この中で素数なのは2位と3位なので、Aが本当のことを言っている場合、「自分は2位か3位だよ」と言っているのと同じということですね。
ということは、Aが嘘をついているなら、Aの順位は1位か4位であるということになります。ここで大事なのが「嘘をついているのが1人しかいない」ということ。だからB、C、Dの発言は、Aが嘘つきなら必ず正しいということです。ということでCの順位は1位であることが確定し、Aは4位ということになります。
ここでDの条件「私の順位はBより1つ上である」を考えると、2位がD、3位がBということになります。ところがこのように当てはめてしまうと、Bの条件「私はAとの順位の間に1人別の人がいる」を満たしていません。つまり、矛盾が発生しているのです。だからAは嘘つきでないことがわかります。