// PascalABC.NET 3.6.3
uses School;
function Divizors(n: integer): List<integer>;
begin
var L := new List<integer>;
L.Add(1);
L.Add(n);
if n > 3 then
begin
var k := 2;
while (k * k <= n) and (k < 46341) do
begin
if n mod k = 0 then
begin
var t := n div k;
L.Add(k);
if k < t then L.Add(t)
else break
end;
Inc(k)
end;
L.Sort;
end;
Result := L
end;
begin
// 1
if ReadInteger.IsPrime then Println('YES')
else Println('NO');
// 2
ReadInteger.Factorize.First.Println;
// 3
var a := Divizors(ReadInteger);
Print(a.Count, a.Sum)
end.
import random
class Player(object):
def __init__(self, money):
"""Constructor"""
self.money = float(money)
def check_money_for_final(self):
if self.money >= 1000:
return False
else:
return True
def work_distribution_of_leaflets(money):
money_add = random.randint(5,10)
print("Было заработано на раздаче листовок: ", money_add, "\nВсего денег: ", money + money_add)
return money + money_add
def work_programming(money):
money_add = random.randint(5,30)
print("Было заработано на программировании: ", money_add, "\nВсего денег: ", money + money_add)
return money + money_add
def lucky_rate(money):
lucky = random.randint(0,100)
if lucky >= 50:
money_add = money * 0.5
print("Было заработано на ставке: ", money_add, "\nВсего денег: ", money + money_add)
else:
money_add = 0
money = 0
print("Всё было потеряно!\nВсего денег: ", money + money_add)
return money + money_add
if __name__ == "__main__":
player = Player(200.0)
while player.check_money_for_final():
print("Количество денег: ", player.money)
print("1) Раздавать листовки \n2) Программировать \n3) Сыграть ставку\n")
ans = input()
if ans == '1':
player.money = work_distribution_of_leaflets(player.money)
elif ans == '2':
player.money = work_programming(player.money)
elif ans == '3':
player.money = lucky_rate(player.money)
if player.money == 0.0:
print("Вы проиграли")
break
if not(player.check_money_for_final()):
print("Вы победили!")
break