ШПОРААААА ИНФОРМАТКИА. Return F(n1)3F(n3)2 if n in range(100000,201)
Скачать 30.31 Kb.
|
16 хард ''' def F(n): if n < (-100000): return 1 if n > 10: return F(n-1)+3*F(n-3)+2 if n in range(-100000,20+1): return (-F(n-1)) print(F(20)) ''' cache = {} def f(n): if n not in cache: if n<-100000: cache[n] = 1 elif n>10: cache[n] = f(n-1)+3*f(n-3)+2 else: cache[n] = -f(n-1) return cache[n] for i in range(-100000,20+1): f(i) print(f(20)) 22 ''' a = 10 b = 0 x = int(input()) while x > 0: y = x % 10 x = x // 10 if y < a: a = y if y > b: b = y print(a) print(b) ‘’’ for i in range(1,9999): a = 10 b = 0 x = i while x > 0: y = x % 10 x = x // 10 if y < a: a = y if y > b: b = y if a==5 and b==7 and i>1000: print(i) #5 7 четыреххзнач максимальн 23 def otrezok(start,x): if start>x or x==15: return 0 if x==start: return 1 K=otrezok(start, x-1) K+=otrezok(start, x-2) if x%3==0: K+=otrezok(start, x//3) return K print(otrezok(2,11)*otrezok(11,16)) 2 for x in range(2): for x in range(2): for x in range(2): for x in range(2): f = ((x <= y )== (z <= w) or (x and w)) if f == false: print(x,y,z,w) 25 ''' среди целых чисел (2532000,2532160) ищет простые числа. найдите все простые числа которые заканчиваются на цифру 7. выведите их в порядке возрастания, слева от каждого числа введите его номер по порядку ''' def prime(x): sq = int(x**0.5) for i in range(2,sq+1): if x%i==0: return False return True d = [x for x in range(2532000,2532161) if prime(x) and x%10 ==7] #x из списка если x такой-то for j in range(len(d)): print(j+1, d[j]) ;;;; ''' напишите которая ищет среди() число имеющее максимальное количество различ натур дели,если таких нескоько найдите минимальное из них. на экран введите количество делителей такого числа и само число ''' c=0 for x in range(541,1235): b = 0 for i in range(1,x+1): if x%i==0: b+=1 if b>c: num = i c = b print(c,num) 5 )''' #(min N больше 77) def f(R): a = bin(R)[2:] if a.count('1')%2==0: return 1 return 0 R = 77+1 while not f(R): R+=2 print(R//4) ''' #(min R больше 102) ''' for n in range(1, 43+1): if n%2==0: r=str(bin(n))+'01' else: r=str(bin(n))+'10' if int(r,2)>43: print(int(r,2)) break 6,22 x=Input => for x in range(1,10000000): + => t=x Print(a) => if a==… 15. flag=0 for A in range(-100,501): flag=0 for x in range(1,501): for y in range(1,501): if ((x*y<3*A) or (x>=22) or (x<7*y))==False: flag=1 break if flag==1: break if flag==0: print(A) break flag=0 for A in range(0,1000): flag=0 for x in range(0,1000): if ((x&29!=0) <= ((x&17==0) <= (x&A!=0)))==False: flag=1 break if flag==0: print(A) break DEL flag=0 for A in range(1, 1001): flag=0 for x in range(1, 1001): if ((((x%36==0) and (x%42==0)) <= (x%A==0)) and (A*(A-25)<25*(A+200))) == False: flag=1 break if flag==0: print(A) ОТРЕЗКИ: БОЛЬШЕЕ ВСЕГДА СРАВНИТЬ И САМОЕ БОЛЬШЕЕ МЕНЬШЕЕ ЕСЛИ ОДНО, ТО ВЫЧЕСТЬ, ЕСЛИ ДВА ТО ОБЪЕДИНИТЬ КРАЯ И ВЫЧЕСТЬ. НАИМЕНЬШЕЕ P = [ i / 10 for i in range(300,451)] Q = [ i / 10 for i in range(400,551)] def f(x, A): return ((x not in A) <= ( x not in P)) and ((( x in Q) <= (x in A))) A = set() for x in [ i / 10 for i in range(10, 601)]: if not f(x, A): A.add(x) print(sorted(A)) # [30, 55] print('---------') print('55-30 = ', 55-30) ---------------- НАИБОЛЬШЕЕ P = [ i / 10 for i in range(300,451)] Q = [ i / 10 for i in range(400,551)] def f(x, A): return ((x not in A) <= ( x not in P)) and ((( x in Q) <= (x in A))) A = set() for x in [ i / 10 for i in range(10, 601)]: if not f(x, A): A.add(x) print(sorted(A)) # [30, 55] print('---------') print('55-30 = ', 55-30) P = {2,4,6,8,10,12} Q = {3,6,9,12,15} def f(x, A): return (x in P) <= ((( x in Q) and (x not in A)) <= (x not in P)) A = set() for x in [ i / 10 for i in range(10, 501)]: if not f(x, A): A.add(x) print(sorted(A)) print(6+12) -- Наибольшее кол-во P ={2,4,6,8,10,12,14,16,18,20} Q ={3,6,9,12,15,18,21,24,27,30} def f(x,A): return (((x in A) <= (x in P)) and ((x in Q) <= (x not in A) )) A = set([i/10 for i in range(20,401)]) for x in [i/10 for i in range(20,401)]: if not f(x,A): A.remove(x) print(sorted(A)) [2.0, 4.0, 8.0, 10.0, 14.0, 16.0, 20.0] Ответ== 7 8 Сколько таких слов.. from itertools import product k=0 for x in product('ЕГЭ', repeat=5): s = ''.join(x) if s[0] != 'Г': k+=1 print(k) //// Запишите слово, которое стоит на 150-м месте от начала списка. ''' import itertools d=0 for x in itertools.product('akpy', repeat=5): s = ''.join(x) d+=1 if d>151: break print(d,s) //// Укажите номер слова УАУАУ. ''' import itertools d=0 for x in itertools.product('АОУ', repeat=5): s = ''.join(x) d+=1 if s=='УАУАУ': print(d) /// Укажите номер первого слова, которое начинается с буквы У. ''' import itertools d=0 for x in itertools.product('АОУ', repeat=5): s = ''.join(x) d+=1 if s[0]=='У': print(d,s) /// . Сколько слов длины 5, начинающихся с согласной буквы и заканчивающихся гласной буквой, можно составить из букв К, У, М, А? Каждая буква может входить в слово несколько раз. ''' import itertools k=0 for x in itertools.product('KYMA', repeat=5): s = ''.join(x) if (s[0]!='A' or s[0]!='Y') and (s[4]=='A' or s[4]=='A'): k+=1 print(k) /// Каждую букву нужно использовать ровно 1 раз, при этом код не может начинаться с буквы Ч и не может содержать сочетания ИАУ. Сколько различных кодов может составить Вася? ''' import itertools k=0 for x in itertools.permutations('КУПЧИХА'): s = ''.join(x) if s[0]!='Ч' and 'ИАУ' not in s: k+=1 print(k) /// Настя составляет 6-буквенные слова, в которых есть только буквы Д, Ж, О, Б, С, причём буквы Д, О, С встречаются ровно по одному разу. Буква Ж встречается не более 2 раз, а буква Б может встречаться любое количество раз или не встречаться вовсе. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько различных слов может составить Настя? ''' import itertools k=0 for x in itertools.product('джобс', repeat=6): s = ''.join(x) if s.count('д')==1 and s.count('о')==1 and s.count('с')==1 and s.count('ж')<=2 : k+=1 print(k) 17 '''Рассматривается множество целых чисел, принадлежащих числовому отрезку [1388; 63252], которые не делятся на 12 и обязательно имеют в своей записи хотя бы одну из цифр 7 или 4. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число. ''' a = [ x for x in range(1388,63253) if (x%12!=0) and (str(x).count('7')>=1 or str(x).count('4')>=1)] print(len(a), max(a)) 19-21 def f(x, y, p): if x+y>=69 or p>5: return p==3 or p==5 if p%2==0: return f(x+1, y, p+1) or f(x, y+1, p+1) or f(x*2, y, p+1) or f(x, y*3, p+1) if p%2!=0: return f(x+1, y, p+1) and f(x, y+1, p+1) and f(x*2, y, p+1) and f(x, y*3, p+1) for s in range(1, 58+1): if f(10, s, 1): print(s) 19 def f(x,p): if x>=68 or p>3: return p==3 return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1) for s in range(1,67+1): if f(s,1): print(s) break 20 def f(x,p): if x>=68 or p>4: return p==4 if p%2!=0: return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1) if p%2==0: return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1) for s in range(1,67+1): if f(s,1): print(s) 21 def f(x,p): if x>=68 or p>5: return p==3 or p==5 if p%2==0: return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1) if p%2!=0: return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1) for s in range(1,67+1): if f(s,1): print(s) print('-------исключаем: ') def f(x,p): if x>=68 or p>3: return p==3 if p%2==0: return f(x+1,p+1) or f(x+4,p+1) or f(x*5,p+1) if p%2!=0: return f(x+1,p+1) and f(x+4,p+1) and f(x*5,p+1) for s in range(1,67+1): if f(s,1): print(s) 12 Если просят найти макс длину, то переставлять числа местами, если можно! Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 68 идущих подряд цифр 8? В ответе запишите полученную строку. НАЧАЛО ПОКА нашлось (222) ИЛИ нашлось (888) ЕСЛИ нашлось (222) ТО заменить (222, 8) ИНАЧЕ заменить (888, 2) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА n = '8'*68 while '222' in n or '888' in n : if '222' in n: n = n.replace('222','8',1) else: '22' in n: n = n.replace('888','2',1) print(n) Значение арифметического выражения: 125 + 253+59 – записали в системе счисления с основанием 5. #Количество 0 ? n = 125 + 25 ** 3 + 5 ** 9 k0 = 0 while n > 0: if n % 5 == 0: k0 += 1 n = n // 5 print(k0) #Для суммы цифр n = 125 + 25 ** 3 + 5 ** 9 s = 0 while n > 0: s += n % 5 n = n // 5 print(s) 25 Больше500000. Делитель оканч на 8 не равен самому и не равен 8 k=0 for x in range(500001, 500099): sq = int(x**0.5) d = [] if sq**2==x: d+=[sq] for i in range(1,sq): if x%i==0: d+=[i] d+=[x//i] d=[i for i in d if i%10==8 and i!=8 and i!=x] if len(d)>0:#важно print(x, min(d)) k+=1 if k==5: break /// for x in range(174457,174505+1): sq = int(x**0.5) d = [] if sq**2==x: continue for i in range(2,sq): if x%i==0: d+=[i, x//i] if len(d)>2: break d.sort() if len(d)==2: print(d) print(sorted(d)) a = [x for x in range (5,10)] #for k in range(len(a)): #print(k+1, a[k]) #порядковый номер делителя /// ''' k=0 def prime(x): sq= int(x**0.5) for i in range(2,sq+1): if x%i==0: return 0 return 1 x0=5 xm=9 d = [x for x in range(x0,xm+1) if prime(x)] for i in range(len(d)): print(((d[i])-x0+1), d[i]) #порядковый номер в последовательности(в отрезке) /// ПРОСТОТА def prime(x): sq = int(x**0.5) for i in range(2,sq+1): if x%i==0: return False return True СУММА ЦИФР def sums(x): s=0 while x>0: s+=x%10 x=x//10 return s СУММА МАКС И МИН def maxmin(x): sq = int(x**0.5) for i in range(2,sq+1): if x%i==0: return i+ x//i return False /// k=1 def maxmin(x): sq = int(x**0.5) for i in range(2,sq+1): if x%i==0: return i+ x//i return False for x in range(250201, 350389): if maxmin(x)%123==17: k+=1 print(x, maxmin(x)) if k>5: break /// больше 350300. сумма всех различных дел числа, отличных от 1 и самого числа кратна 13/ если делителей нет, то сумма равна нулю k=1 for x in range(350301,450201): sq = int(x**0.5) d = [] if sq**2==x: d+=[sq] for i in range(2, sq+1): if x%i==0: d+=[i,x//i] d.sort() if sum(d)!=0 and sum(d)%13==0: print(x, sum(d)//13) k+=1 if k>6 : break 24 определить макс подряд идущих символов, среди которых нет G, W, P f = open('24.txt') s = freadline() for i in range(0, len(s)): if s[i] not in 'GWP': curr+=1 m=max(curr,m) else: curr = 0 print(m) /// сколько раз встречается комбинация "КОТ" f = open('24.txt') s = freadline() print(s.count('KOT')) /// какое кол-во строк, в которых буква 's' встречается солько же, сколько 'х' f = open('24.txt') k = 0 for s in f: if s.count('x')==s.count('s'): k+=1 print(k) //// найти макс длину состоящей из символов 'с' f = open('24.txt') s= f.readline()+'*' c=0 m=0 for i in range(0, len(s)): if s[i]=='C': c+=1 elif c>0: m = max(c,m) c=0 print(m) /// найти макс длину подцепочки, состоящ из одинак символов. выведите символ, из которого состоит цепочка, а затем длину f = open('24.txt') s= f.readline() c=1 m=1 ch = s[0] for i in range(1, len(s)): if s[i]==s[i-1]: c+=1 if c>m: m = c ch =s[i] else: c=1 print(ch, m) /// найти макс длину подстрочки, в которой символы a и d не стоят рядом. f = open('24.txt') s = f.readline() s = s.replace('ad', 'a d')#там пробел s = s.replace('da', 'd a')#там пробел m=0 for i in s.split(' '):#там пробел m=max(m,len(l)) print(m) |