Борислав обнови решението на 08.03.2012 18:58 (преди над 13 години)
+def prepare_meal(number):
+    meal = ""
+    if number % 3 == 0:
+        while number % 3 == 0:
+            meal += "spam "
+            number = number / 3
+        if number % 5 == 0:
+            meal += "and eggs"
+        else: meal = meal.rstrip(' ')
+    elif number % 5 == 0:
+        meal += "eggs"
+    return meal
Твърде многото скоби не отговарят на стила на Python.
Освен това виждам едно малко парче код, което се повтаря и в цикъла, и извън него. Сигурен съм, че това повторение може да се избегне.
знакът за целочислено делене е //, / връща float, което в някои случаи може да ти създаде проблем:
>>> 999999999999999999999999/3
3.333333333333333e+23
>>> 999999999999999999999999//3
333333333333333333333333
Мерси Орльо прав си. Не знаеш, че в Python има и деление с //. Ако са правили тестове с толкова големи числа вярно ще ми гръмнат.
(9999999999999999999999/3) % 3 == 0 False
Проблем има при число с повече от 17 цифри.
