Пусть Данила съел х конфет, тогда Вика съела х + 2 конфеты. Вместе они съели х + х + 2 = 2х + 2 конфеты. Так как всего они съели 15 конфет, а больше 8 конфет не съел никто, Данила съел больше всех, то получается, что Петя съел 15 - (2х + 2) конфет. Так как никто не съел больше 8 конфет, а Данила съел больше всех, то х > 8. Вместе с тем Данила съел меньше, чем Вика. Так как Вика съела x+2 конфеты, то должно выполняться x+2<8, то есть x<6. Но x>8, значит, решений нет.
В условии ошибка, необходимо исправить предложение "а вика съела на 2 конфеты больше, чем Данила" на "а Вика съела на 2 конфеты меньше, чем Данила."
Тогда Данила съел х конфет, а Вика - х - 2, Петя съел 15 - х - (х - 2) = 17 - 2х конфет.
Так как Данила съел больше всех, то x > х-2 и х > 17 - 2х. Откуда 3х > 17 и х > 5,(6).
Так как никто не съел больше 8 конфет, то x <= 8 и 17 - 2х <= 8. Откуда 2х >= 9, х >= 4,5.
Подходят целые х = 6, 7, 8.
Если х = 6, то Петя съел 17 - 2*6 = 5 конфет.
Если х = 7, то Петя съел 17 - 2*7 = 3 конфеты.
Если х = 8, то Петя съел 17 - 2*8 = 1 конфету.
Ответ: Петя мог съесть 5, 3 или 1 конфету.