Составим математическую модель. Заметим, что каждый раз текущая сумма умножается на некоторое число , где r — процент. То есть начальная сумма вклада S и конечная сумма вклада F связаны следующим отношением: , где x — срок вклада. Его можно выразить следующим образом:
Если результат получается не целым, нужно округлять вверх, иначе сумма будет недоставать от необходимой.
Защиту от дурака, например, проверка на 0, отрицательные значения, делать не будем, считаем, что все данные введены корректно.
Алгоритм:
Составим математическую модель. Заметим, что каждый раз текущая сумма умножается на некоторое число , где r — процент. То есть начальная сумма вклада S и конечная сумма вклада F связаны следующим отношением: , где x — срок вклада. Его можно выразить следующим образом:
Если результат получается не целым, нужно округлять вверх, иначе сумма будет недоставать от необходимой.
Защиту от дурака, например, проверка на 0, отрицательные значения, делать не будем, считаем, что все данные введены корректно.
Программа:
from math import log, ceil
start_s = float(input())
finish_s = float(input())
k = 1.05 #percent
print(ceil(log(finish_s / start_s, k)))
Для контроля работы программы можно раскомментарить строку
print(gDel, i, s)
Объяснение:
так будет попроще:
# функция определения простого числа.
# Если простое - True, иначе -False
def isprime(i):
k=2
while k*k<=i and i%k!=0:
k+=1
return (k*k > i)
fmin=0
gDel=0
for i in range (50001, 90001):
numDel=0
s=' делители:'
for j in range (2, round(i/2)):
if i%j==0 and isprime(j):
numDel+=1
s+=' ' + str(j)
if numDel==3:
if fmin==0: fmin=i
gDel+=1
# print(gDel, i, s)
print(gDel, fmin)