├── ICPC0058 - ĐỈNH THẮT ├── ICPC0101 - THU GỌN DÃY SỐ ├── ICPC0104 - TÌM SỐ NHỎ NHẤT ├── ICPC0105 - TÌM SỐ LỚN NHẤT ├── ICPC0106 - ĐỔI CƠ SỐ - 2 ├── ICPC0107 - THAY ĐỔI CHỮ SỐ ├── ICPC0108 - SUM TRIPLE ZERO ├── ICPC0109 - MIN TRIPLE ├── ICPC0110 - MAX TRIPLE ├── ICPC0111 - XOAY MẢNG ├── ICPC0112 - PRIME – TRIPLET ├── ICPC0113 - EMIRP NUMBER ├── ICPC0114 - PERFECT PRIME ├── ICPC0115 - SỐ KRISH ├── ICPC0116 - CON SỐ DUYÊN NỢ ├── ICPC0117 - CHÚC MỪNG NĂM MỚI ├── ICPC0118 - CUNG HOÀNG ĐẠO ├── PY00000 - Welcome to python ├── PY01000 - HELLO ├── PY01001 - KIỂM TRA CHẴN LẺ ├── PY01003 - LÀM TRÒN SỐ ├── PY01004 - NGUYÊN TỐ ├── PY01005 - SỐ MAY MẮN ├── PY01006 - SỐ MAY MẮN - 2 ├── PY01007 - LÃI SUẤT NGÂN HÀNG ├── PY01008 - CHUYỂN THÀNH CHỮ HOA ├── PY01009 - CHỮ HOA – CHỮ THƯỜNG ├── PY01010 - ĐẦU CUỐI ├── PY01011 - LIỆT KÊ SỐ ĐẸP ├── PY01013 - ƯỚC SỐ CHUNG NGUYÊN TỐ ├── PY01014 - CHIA HẾT CHO K ├── PY01015 - SỐ KHÔNG GIẢM ├── PY01016 - GIẢI MÃ ├── PY01017 - MÃ HÓA 1 ├── PY01018 - MÃ HÓA 2 ├── PY01019 - KHOẢNG CÁCH KÝ TỰ ├── PY01020 - SỐ PHÁT LỘC ├── PY01023 - PHÂN TÍCH THỪA SỐ NGUYÊN TỐ ├── PY01024 - CHẴN - LẺ ├── PY01025 - CHÈN DẤU PHẨY ├── PY01028 - TÁCH TỪ ├── PY01029 - SỐ ĐẢO NGUYÊN TỐ CÙNG NHAU ├── PY01030 - NGUYÊN TỐ CÙNG NHAU ├── PY01033 - BỘ BA NGUYÊN TỐ CÙNG NHAU ├── PY01036 - TÍNH TỔNG PHÂN THỨC ├── PY01038 - KIỂM TRA CHIA HẾT CHO 7 ├── PY01039 - KIỂM TRA SỐ ĐẸP ├── PY01041 - SỐ TĂNG GIẢM ├── PY01042 - KIỂM TRA HỆ CƠ SỐ 3 ├── PY01043 - SỐ THUẬN NGHỊCH CHẴN ├── PY01045 - XÂU PALINDROME ├── PY01047 - KIỂM TRA NGUYÊN TỐ ├── PY01049 - CHỮ SỐ NGUYÊN TỐ ├── PY01051 - TỔNG CHỮ SỐ THUẬN NGHỊCH ├── PY01052 - TỔNG CHỮ SỐ NGUYÊN TỐ ├── PY01053 - SỐ CHIA HẾT CHO 3 ├── PY01054 - TÍCH CHỮ SỐ ├── PY01055 - SỐ XEN KẼ ├── PY01056 - CHẴN – LẺ - NGUYÊN TỐ ├── PY01074 - TỔNG ƯỚC SỐ ├── PY02005 - CẶP NGHỊCH THẾ ├── PY02013 - BIẾN ĐỔI VỀ 1 ├── PY02016 - XUẤT HIỆN NHIỀU LẦN NHẤT ├── PY02018 - SỐ NHỎ NHẤT CÒN THIẾU ├── PY02019 - NGUYÊN TỐ CÙNG NHAU ├── PY02031 - KIỂM TRA NGUYÊN TỐ ├── PY02036 - LIỆT KÊ CẶP SỐ NGUYÊN TỐ CÙNG NHAU ├── PY02060 - BÀI D. BỘI SỐ CHUNG NHỎ NHẤT ├── PY03014 - BIỂU THỨC ├── PYKT066 - DÃY CON NGẮN NHẤT ├── PYKT076 - DANH SÁCH PHIM ├── PYKT093 - TÍNH ĐIỂM TRUNG BÌNH ├── PYKT13040 - HÌNH TRÒN - 3 └── README.md /ICPC0058 - ĐỈNH THẮT: -------------------------------------------------------------------------------- 1 | t=int(input()) 2 | def kt(a,u,v,i,n): 3 | q,f=[u],[0]*(n+1) 4 | f[u]=1 5 | while len(q)>0: 6 | x=q.pop() 7 | if x==v: 8 | return 0 9 | for j in a[x]: 10 | if f[j]==0 and j!=i: 11 | f[j]=1 12 | q.append(j) 13 | return 1 14 | 15 | for _ in range(t): 16 | n,m,u,v=[int(i) for i in input().split()] 17 | a={x:[] for x in range(1,n+1)} 18 | for i in range(m): 19 | x,y=map(int,input().split()) 20 | a[x].append(y) 21 | dem=0 22 | for i in range(n+1): 23 | if i!=u and i!=v: 24 | dem+=kt(a,u,v,i,n) 25 | print(dem) 26 | -------------------------------------------------------------------------------- /ICPC0101 - THU GỌN DÃY SỐ: -------------------------------------------------------------------------------- 1 | a = [] 2 | n = int(input()) 3 | b = [int(i) for i in input().split()] 4 | for i in range(0,len(b)): 5 | x = b[i] 6 | if i%2==0: 7 | a.insert(0,b[i]) 8 | else: 9 | a.append(b[i]) 10 | while len(a)>=2: 11 | l = a[0] 12 | r = a[-1] 13 | if (l+r)%2==0: 14 | a.pop(0) 15 | a.pop(len(a)-1) 16 | else: 17 | break 18 | print(len(a)) 19 | -------------------------------------------------------------------------------- /ICPC0104 - TÌM SỐ NHỎ NHẤT: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for i in range(0,t): 3 | a = [] 4 | s = input() 5 | t = "" 6 | for j in s: 7 | if j.isdigit(): 8 | t=t+j 9 | elif len(t) != 0: 10 | a.append(t) 11 | t="" 12 | a = [int(i) for i in a] 13 | print(min(a)) 14 | -------------------------------------------------------------------------------- /ICPC0105 - TÌM SỐ LỚN NHẤT: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for i in range(0,t): 3 | a = [] 4 | s = input() 5 | t = "" 6 | for j in s: 7 | if j.isdigit(): 8 | t=t+j 9 | elif len(t) != 0: 10 | a.append(t) 11 | t="" 12 | if len(t)>0: 13 | a.append(t) 14 | a = [int(i) for i in a] 15 | print(max(a)) 16 | -------------------------------------------------------------------------------- /ICPC0106 - ĐỔI CƠ SỐ - 2: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for i in range(0,t): 3 | b = int(input()) 4 | s = input() 5 | s = int(s,2) 6 | t = "" 7 | ls="ABCDEF" 8 | r = s 9 | while r>0: 10 | if b>10: 11 | m = r%b 12 | if m>=10: 13 | t+=ls[m-10] 14 | else: 15 | t+=str(m) 16 | else: 17 | t+=str(r%b) 18 | r=r//b 19 | t = t[::-1] 20 | print(t) 21 | -------------------------------------------------------------------------------- /ICPC0107 - THAY ĐỔI CHỮ SỐ: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(0,t): 3 | p,q = [i for i in input().split()] 4 | p,q = min(p,q),max(p,q) 5 | s = input().strip() 6 | if ' ' in s: 7 | s,t = s.split() 8 | else: 9 | t=input() 10 | s=s.replace(q,p) 11 | t=t.replace(q,p) 12 | print(int(s)+int(t),end=" ") 13 | s=s.replace(p,q) 14 | t=t.replace(p,q) 15 | print(int(s)+int(t)) 16 | -------------------------------------------------------------------------------- /ICPC0108 - SUM TRIPLE ZERO: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(0,t): 3 | n = int(input()) 4 | a = sorted(list(map(int,input().split()))) 5 | dem = 0 6 | for i in range(0,len(a)-2): 7 | l=i+1 8 | r=len(a)-1 9 | x = a[i] 10 | while l0: 18 | s = ' ' + s 19 | else: 20 | i+=1 21 | continue 22 | a += [int(x) for x in re.findall(s,line)] 23 | i+=1 24 | 25 | for x in heapq.nsmallest(3,a): 26 | ans+=x 27 | print(ans) 28 | -------------------------------------------------------------------------------- /ICPC0110 - MAX TRIPLE: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | t = int(sys.stdin.readline()) 4 | e = -10**9 5 | for _ in range(t): 6 | n = int(sys.stdin.readline()) 7 | s = sys.stdin.readline() 8 | x,y,z = e,e,e 9 | n = len(s)//3 10 | while s[n] != ' ': 11 | n-=1 12 | a = s[:n] 13 | s = s[n:] 14 | for i in map(int,a.split()): 15 | if i>=x: 16 | z,y,x = y,x,i 17 | elif i>=y: 18 | z,y = y,i 19 | elif i>=z: 20 | z = i 21 | 22 | n = len(s)//2 23 | while s[n]!=' ': 24 | n-=1 25 | for i in map(int,s[:n].split()): 26 | if i<=z: 27 | continue 28 | if i>=x: 29 | z,y,x = y,x,i 30 | elif i>=y: 31 | z,y = y,i 32 | else: 33 | z=i 34 | for i in map(int,s[n:].split()): 35 | if i<=z: 36 | continue 37 | if i>=x: 38 | z,y,x = y,x,i 39 | elif i>=y: 40 | z,y = y,i 41 | else: 42 | z=i 43 | print(x+y+z) 44 | -------------------------------------------------------------------------------- /ICPC0111 - XOAY MẢNG: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(0,t): 3 | n,d = [int(i) for i in input().split()] 4 | a = input().split() 5 | for i in range(d,n): 6 | print(int(a[i]),end=" ") 7 | for i in range(0,d): 8 | print(int(a[i]),end=" ") 9 | print() 10 | -------------------------------------------------------------------------------- /ICPC0112 - PRIME – TRIPLET: -------------------------------------------------------------------------------- 1 | c=[1]*1000005 2 | c[1]=c[0]=0 3 | for i in range(4,1000001,2): 4 | c[i]=0 5 | c[2]=1 6 | for i in range(3,1000001,2): 7 | if c[i]==1: 8 | for j in range(i*i,1000001,i): 9 | c[j]=0 10 | 11 | t = int(input()) 12 | for k in range(0,t): 13 | n = int(input()) 14 | dem = 0 15 | for i in range(3,n-5,2): 16 | if c[i] and c[i+2] and c[i+6]: 17 | dem+=1 18 | elif c[i] and c[i+4] and c[i+6]: 19 | dem+=1 20 | print(dem) 21 | -------------------------------------------------------------------------------- /ICPC0113 - EMIRP NUMBER: -------------------------------------------------------------------------------- 1 | c=[1]*1000005 2 | c[1]=c[0]=0 3 | for i in range(4,1000001,2): 4 | c[i]=0 5 | c[2]=1 6 | for i in range(3,1000001,2): 7 | if c[i]==1: 8 | for j in range(i*i,1000001,i): 9 | c[j]=0 10 | 11 | t = int(input()) 12 | for k in range(0,t): 13 | n = int(input()) 14 | dem = 0 15 | for i in range(3,n,2): 16 | if c[i]: 17 | t=str(i) 18 | t=t[::-1] 19 | if int(t) str(i) and c[int(t)]: 20 | print(i,int(t),end=" ") 21 | print() 22 | -------------------------------------------------------------------------------- /ICPC0114 - PERFECT PRIME: -------------------------------------------------------------------------------- 1 | import math as mt 2 | def nt(n): 3 | if n<2: 4 | return 0 5 | if n<=3: 6 | return 1 7 | if n%2==0 or n%3==0: 8 | return 0 9 | for i in range(5,int(mt.sqrt(n))+1,6): 10 | if n%i==0 or n%(i+2)==0: 11 | return 0 12 | return 1 13 | 14 | def cs(n): 15 | s=0 16 | while n: 17 | r=n%10 18 | if nt(r)==0: 19 | return 0 20 | s+=r 21 | n//=10 22 | return nt(s) 23 | t = int(input()) 24 | for k in range(0,t): 25 | n = int(input()) 26 | t = str(n) 27 | t=t[::-1] 28 | t=int(t) 29 | if nt(n) and cs(n) and nt(t): 30 | print('Yes') 31 | else: 32 | print('No') 33 | -------------------------------------------------------------------------------- /ICPC0115 - SỐ KRISH: -------------------------------------------------------------------------------- 1 | c=[1]*11 2 | for i in range(2,10): 3 | c[i]=c[i-1]*i 4 | t = int(input()) 5 | for k in range(0,t): 6 | n = input() 7 | s = 0 8 | for i in n: 9 | i=int(i) 10 | s+=c[i] 11 | if s==int(n): 12 | print('Yes') 13 | else: 14 | print('No') 15 | -------------------------------------------------------------------------------- /ICPC0116 - CON SỐ DUYÊN NỢ: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(0,t): 3 | n = input() 4 | if n[0]==n[-1]: 5 | print('YES') 6 | else: 7 | print('NO') 8 | -------------------------------------------------------------------------------- /ICPC0117 - CHÚC MỪNG NĂM MỚI: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = int(input()) 3 | a = [] 4 | for k in range(t): 5 | c = input().split() 6 | if a.count(c)==0: 7 | a.append(c) 8 | print(len(a)) 9 | -------------------------------------------------------------------------------- /ICPC0118 - CUNG HOÀNG ĐẠO: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for i in range(t) : 3 | d, m = [int(x) for x in input().split()] 4 | if m == 1 : 5 | if d < 20 : 6 | print("Ma Ket") 7 | else : 8 | print("Bao Binh") 9 | elif m == 2 : 10 | if d < 19 : 11 | print("Bao Binh") 12 | else : 13 | print("Song Ngu") 14 | elif m == 3 : 15 | if d < 21 : 16 | print("Song Ngu") 17 | else : 18 | print("Bach Duong") 19 | elif m == 4 : 20 | if d < 20 : 21 | print("Bach Duong") 22 | else : 23 | print("Kim Nguu") 24 | elif m == 5 : 25 | if d < 21 : 26 | print("Kim Nguu") 27 | else : 28 | print("Song Tu") 29 | elif m == 6 : 30 | if d < 21 : 31 | print("Song Tu") 32 | else : 33 | print("Cu Giai") 34 | elif m == 7 : 35 | if d < 23 : 36 | print("Cu Giai") 37 | else : 38 | print("Su Tu") 39 | elif m == 8 : 40 | if d < 23 : 41 | print("Su Tu") 42 | else : 43 | print("Xu Nu") 44 | elif m == 9 : 45 | if d < 23 : 46 | print("Xu Nu") 47 | else : 48 | print("Thien Binh") 49 | elif m == 10 : 50 | if d < 23 : 51 | print("Thien Binh") 52 | else : 53 | print("Thien Yet") 54 | elif m == 11 : 55 | if d < 23 : 56 | print("Thien Yet") 57 | else : 58 | print("Nhan Ma") 59 | else : 60 | if d < 22 : 61 | print("Nhan Ma") 62 | else : 63 | print("Ma Ket") 64 | -------------------------------------------------------------------------------- /PY00000 - Welcome to python: -------------------------------------------------------------------------------- 1 | print("Welcome to python.") 2 | -------------------------------------------------------------------------------- /PY01000 - HELLO: -------------------------------------------------------------------------------- 1 | print("Hello "+input()+"!") 2 | -------------------------------------------------------------------------------- /PY01001 - KIỂM TRA CHẴN LẺ: -------------------------------------------------------------------------------- 1 | n=int(input()) 2 | if n%2==0: 3 | print('CHAN') 4 | else: 5 | print('LE') 6 | -------------------------------------------------------------------------------- /PY01003 - LÀM TRÒN SỐ: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(t): 3 | n=int(input()) 4 | s=0 5 | dem=1 6 | while True: 7 | t = n//10 8 | if(t==0): 9 | break 10 | if n%10+s>=5: 11 | s=1 12 | else: 13 | s=0 14 | n//=10 15 | dem*=10 16 | print((n+s)*dem) 17 | -------------------------------------------------------------------------------- /PY01004 - NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math as mt 2 | def nt(n): 3 | if n<2: 4 | return 0 5 | if n<=3: 6 | return 1 7 | if n%2==0 or n%3==0: 8 | return 0 9 | for i in range(5,int(mt.sqrt(n))+1,6): 10 | if n%i==0 or n%(i+2)==0: 11 | return 0 12 | return 1 13 | 14 | 15 | m = int(input()) 16 | for k in range(0,m): 17 | n = int(input()) 18 | p = n 19 | for i in range(2,int(mt.sqrt(n))+1): 20 | if n%i==0: 21 | p = p - p//i 22 | while n%i==0: 23 | n//=i 24 | if n>1: 25 | p = p - p//n 26 | if nt(p): 27 | print("YES") 28 | else: 29 | print("NO") 30 | 31 | -------------------------------------------------------------------------------- /PY01005 - SỐ MAY MẮN: -------------------------------------------------------------------------------- 1 | t = 1 2 | for k in range(t): 3 | a = list(map(int,input())) 4 | s=a.count(4) 5 | t=a.count(7) 6 | if s+t==4 or s+t==7: 7 | print("YES") 8 | else: 9 | print("NO") 10 | -------------------------------------------------------------------------------- /PY01006 - SỐ MAY MẮN - 2: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(t): 3 | a = list(map(int,input())) 4 | s=a.count(4) 5 | t=a.count(7) 6 | if s+t==len(a): 7 | print("YES") 8 | else: 9 | print("NO") 10 | -------------------------------------------------------------------------------- /PY01007 - LÃI SUẤT NGÂN HÀNG: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for i in range(t) : 4 | n, x, m = [float(x) for x in input().split()] 5 | x /= 100 6 | s = math.log(m / n, 1 + x) 7 | if s != int(s) : s = s + 1 8 | print(int(s)) 9 | -------------------------------------------------------------------------------- /PY01008 - CHUYỂN THÀNH CHỮ HOA: -------------------------------------------------------------------------------- 1 | print(input().upper()) 2 | -------------------------------------------------------------------------------- /PY01009 - CHỮ HOA – CHỮ THƯỜNG: -------------------------------------------------------------------------------- 1 | s=input() 2 | t=0 3 | h=0 4 | for i in s: 5 | if i.isupper(): 6 | h+=1 7 | else: 8 | t+=1 9 | if t>=h: 10 | print(s.lower()) 11 | else: 12 | print(s.upper()) 13 | -------------------------------------------------------------------------------- /PY01010 - ĐẦU CUỐI: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(t): 3 | s = input() 4 | if s[0:2]==s[-2:]: 5 | print("YES") 6 | else: 7 | print("NO") 8 | -------------------------------------------------------------------------------- /PY01011 - LIỆT KÊ SỐ ĐẸP: -------------------------------------------------------------------------------- 1 | b = [2,4,6,8] 2 | c = [2,4,6,8] 3 | kt = 1 4 | while len(b)>0: 5 | t = b[0] 6 | b.remove(b[0]) 7 | c.append(t) 8 | if len(str(t))==4: 9 | continue 10 | b.append(t*10) 11 | b.append(t*10+2) 12 | b.append(t*10+4) 13 | b.append(t*10+6) 14 | b.append(t*10+8) 15 | ans = [] 16 | for i in c: 17 | i = str(i) 18 | i = i+i[::-1] 19 | i=int(i) 20 | ans.append(i) 21 | b = [] 22 | for i in ans: 23 | if b.count(i)==0: 24 | b.append(i) 25 | b.sort() 26 | t = int(input()) 27 | for k in range(t): 28 | n = int(input()) 29 | i=0 30 | while i=n: 32 | break 33 | print(b[i],end=" ") 34 | i+=1 35 | print() 36 | -------------------------------------------------------------------------------- /PY01013 - ƯỚC SỐ CHUNG NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math as mt 2 | a = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53] 3 | t = int(input()) 4 | for k in range(t): 5 | n,m = [int(i) for i in input().split()] 6 | x = mt.gcd(n,m) 7 | s = 0 8 | while x: 9 | s+=x%10 10 | x//=10 11 | x=s 12 | if x in a: 13 | print('YES') 14 | else: 15 | print("NO") 16 | -------------------------------------------------------------------------------- /PY01014 - CHIA HẾT CHO K: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = 1 3 | for k in range(t): 4 | a,k,n = [int(i) for i in input().split()] 5 | b = k-(a%k) 6 | dem = 0 7 | while a+b<=n: 8 | dem+=1 9 | print(b,end=" ") 10 | b+=k 11 | if dem==0: 12 | print(-1) 13 | 14 | -------------------------------------------------------------------------------- /PY01015 - SỐ KHÔNG GIẢM: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = int(input()) 3 | for k in range(t): 4 | a = list(map(int,input())) 5 | kt = "YES" 6 | for i in range(1,len(a)): 7 | if a[i]-a[i-1]<0: 8 | kt = "NO" 9 | break 10 | print(kt) 11 | 12 | -------------------------------------------------------------------------------- /PY01016 - GIẢI MÃ: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = int(input()) 3 | for k in range(t): 4 | s = input() 5 | t = s[0::2] 6 | e = s[1::2] 7 | for i in range(len(e)): 8 | for j in range(int(e[i])): 9 | print(t[i],end="") 10 | print() 11 | 12 | -------------------------------------------------------------------------------- /PY01017 - MÃ HÓA 1: -------------------------------------------------------------------------------- 1 | t = int(input()) 2 | for k in range(t): 3 | s = input() 4 | i = 0 5 | while i1: 17 | print(str(n)+"^"+str(1)) 18 | -------------------------------------------------------------------------------- /PY01024 - CHẴN - LẺ: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t) : 4 | a = list(map(int,input())) 5 | s = sum(a) 6 | if s%10: 7 | print("NO") 8 | continue 9 | else: 10 | kt=1 11 | for i in range(1,len(a)): 12 | kt&=(abs(a[i]-a[i-1])==2) 13 | print("YES" if kt else "NO") 14 | -------------------------------------------------------------------------------- /PY01025 - CHÈN DẤU PHẨY: -------------------------------------------------------------------------------- 1 | import math 2 | t = 1 3 | for k in range(t): 4 | s = input() 5 | d=[] 6 | e="" 7 | n=len(s)-1 8 | dem=1 9 | while n>=0: 10 | if(dem==3): 11 | e=s[n]+e 12 | d.append(e) 13 | dem=1 14 | e="" 15 | else: 16 | e=s[n]+e 17 | dem+=1 18 | n-=1 19 | if(e!=""): 20 | d.append(e) 21 | d.reverse() 22 | for i in range(0,len(d)): 23 | if i!=len(d)-1: 24 | print(d[i]+',',end="") 25 | else: 26 | print(d[i],end="") 27 | -------------------------------------------------------------------------------- /PY01028 - TÁCH TỪ: -------------------------------------------------------------------------------- 1 | import math 2 | t = 1 3 | for k in range(t): 4 | s = input().split() 5 | for i in s: 6 | print(i) 7 | -------------------------------------------------------------------------------- /PY01029 - SỐ ĐẢO NGUYÊN TỐ CÙNG NHAU: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t): 4 | s=input() 5 | d=s[::-1] 6 | s=int(s) 7 | d=int(d) 8 | if(math.gcd(s,d)==1): 9 | print("YES") 10 | else: 11 | print("NO") 12 | -------------------------------------------------------------------------------- /PY01030 - NGUYÊN TỐ CÙNG NHAU: -------------------------------------------------------------------------------- 1 | import math 2 | t = 1 3 | for k in range(t): 4 | n,k = map(int,input().split()) 5 | x = pow(10,k-1) 6 | y = pow(10,k) 7 | dem = 0 8 | for i in range(x,y): 9 | if(math.gcd(i,n)==1): 10 | dem+=1 11 | print(i,end=" ") 12 | if(dem==10): 13 | print() 14 | dem=0 15 | -------------------------------------------------------------------------------- /PY01033 - BỘ BA NGUYÊN TỐ CÙNG NHAU: -------------------------------------------------------------------------------- 1 | import math 2 | def check(a, b) : 3 | if math.gcd(a, b) == 1 : return True 4 | return False 5 | a, b = [int(x) for x in input().split()] 6 | b += 1 7 | for i in range(a, b) : 8 | for j in range(i + 1, b) : 9 | for k in range(j + 1, b): 10 | if check(i, j) and check(j, k) and check(i, k): 11 | print("(",end = "") 12 | print(i, end = ", ") 13 | print(j, end = ", ") 14 | print(k, end = ")\n") 15 | -------------------------------------------------------------------------------- /PY01036 - TÍNH TỔNG PHÂN THỨC: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t): 4 | n = int(input()) 5 | s=0 6 | if n%2==1: 7 | for i in range(1,n+2,2): 8 | s+=1/i 9 | else: 10 | for i in range(2,n+2,2): 11 | s+=1/i 12 | print("{:.6f}".format(s)) 13 | -------------------------------------------------------------------------------- /PY01038 - KIỂM TRA CHIA HẾT CHO 7: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t): 4 | n = input() 5 | m = n[::-1] 6 | n = int(n) 7 | m = int(m) 8 | dem = 0 9 | while True: 10 | if dem==1000: 11 | break 12 | if n%7==0: 13 | break 14 | n+=m 15 | m=int(str(n)[::-1]) 16 | dem += 1 17 | print(n if n%7==0 else -1) 18 | -------------------------------------------------------------------------------- /PY01039 - KIỂM TRA SỐ ĐẸP: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t): 4 | n = list(map(int,input())) 5 | s = set(n) 6 | if len(s)!=2: 7 | print("NO") 8 | else: 9 | kt = 1 10 | for i in range(0,len(n)-2): 11 | kt&=(n[i]==n[i+2]) 12 | print("YES" if kt else "NO") 13 | -------------------------------------------------------------------------------- /PY01041 - SỐ TĂNG GIẢM: -------------------------------------------------------------------------------- 1 | import math 2 | t = int(input()) 3 | for k in range(t): 4 | n = list(map(int,input())) 5 | if len(n)<=2: 6 | print("NO") 7 | continue 8 | n.append(-1) 9 | p = -1 10 | for i in range(len(n)-1): 11 | if n[i]>=n[i+1]: 12 | p = i 13 | break 14 | if p==len(n)-2 or p==-1 or p==0: 15 | print("NO") 16 | else: 17 | dem = len(n)-1-p-1 18 | for i in range(p+1,len(n)-1): 19 | if n[i]>=n[i+1]: 20 | dem-=1 21 | print("YES" if dem==0 else "NO") 22 | -------------------------------------------------------------------------------- /PY01042 - KIỂM TRA HỆ CƠ SỐ 3: -------------------------------------------------------------------------------- 1 | import math 2 | s = ['0','1','2'] 3 | t = int(input()) 4 | for k in range(t): 5 | n = input() 6 | kt = 1 7 | for i in n: 8 | kt&=(i in s) 9 | print("YES" if kt else "NO") 10 | -------------------------------------------------------------------------------- /PY01043 - SỐ THUẬN NGHỊCH CHẴN: -------------------------------------------------------------------------------- 1 | import math 2 | s = [0,2,4,6,8] 3 | 4 | def ktr(n): 5 | if len(n) not in s: 6 | return 0 7 | m = n[::-1] 8 | if m!=n: 9 | return 0 10 | for i in n: 11 | if int(i) not in s: 12 | return 0 13 | return 1 14 | 15 | t = int(input()) 16 | for k in range(t): 17 | n = int(input()) 18 | for i in range(2,n,2): 19 | if ktr(str(i)): 20 | print(i,end=" ") 21 | print() 22 | -------------------------------------------------------------------------------- /PY01045 - XÂU PALINDROME: -------------------------------------------------------------------------------- 1 | import math 2 | t = 1 3 | for k in range(t): 4 | print(len(input())-1) 5 | -------------------------------------------------------------------------------- /PY01047 - KIỂM TRA NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math 2 | c= [0]*10000 3 | c[0]=c[1]=1 4 | for i in range(4,10000,2): 5 | c[i]=1 6 | c[2]=0 7 | for i in range(3,int(math.sqrt(10000))+1,2): 8 | if c[i]==0: 9 | for j in range(i*i,10000,2*i): 10 | c[j]=1 11 | for k in range(int(input())): 12 | n = int(input()[-4:]) 13 | print("YES" if c[n]==0 else "NO") 14 | -------------------------------------------------------------------------------- /PY01049 - CHỮ SỐ NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math 2 | c= [0]*10000 3 | c[0]=c[1]=1 4 | for i in range(4,10000,2): 5 | c[i]=1 6 | c[2]=0 7 | for i in range(3,int(math.sqrt(10000))+1,2): 8 | if c[i]==0: 9 | for j in range(i*i,10000,2*i): 10 | c[j]=1 11 | for k in range(int(input())): 12 | n = input() 13 | if c[len(n)]==1: 14 | print("NO") 15 | continue 16 | d1 = 0 17 | for i in n: 18 | d1+=(1-c[int(i)]) 19 | if d1>len(n)-d1: 20 | print("YES") 21 | else: 22 | print("NO") 23 | -------------------------------------------------------------------------------- /PY01051 - TỔNG CHỮ SỐ THUẬN NGHỊCH: -------------------------------------------------------------------------------- 1 | import math 2 | c= [0]*10000 3 | c[0]=c[1]=1 4 | for i in range(4,10000,2): 5 | c[i]=1 6 | c[2]=0 7 | for i in range(3,int(math.sqrt(10000))+1,2): 8 | if c[i]==0: 9 | for j in range(i*i,10000,2*i): 10 | c[j]=1 11 | for k in range(int(input())): 12 | n = list(map(int,input())) 13 | s = str(sum(n)) 14 | if s==s[::-1] and len(s)>1: 15 | print("YES") 16 | else: 17 | print("NO") 18 | -------------------------------------------------------------------------------- /PY01052 - TỔNG CHỮ SỐ NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math 2 | c= [0]*10000 3 | c[0]=c[1]=1 4 | for i in range(4,10000,2): 5 | c[i]=1 6 | c[2]=0 7 | for i in range(3,int(math.sqrt(10000))+1,2): 8 | if c[i]==0: 9 | for j in range(i*i,10000,2*i): 10 | c[j]=1 11 | for k in range(int(input())): 12 | n = list(map(int,input())) 13 | s = sum(n) 14 | print("YES" if c[s]==0 else "NO") 15 | -------------------------------------------------------------------------------- /PY01053 - SỐ CHIA HẾT CHO 3: -------------------------------------------------------------------------------- 1 | for i in range(int(input())): 2 | n=list(map(int,input())) 3 | if(sum(n)%3==0): 4 | print("YES") 5 | else: 6 | print("NO") 7 | -------------------------------------------------------------------------------- /PY01054 - TÍCH CHỮ SỐ: -------------------------------------------------------------------------------- 1 | for i in range(int(input())): 2 | n=list(map(int,input())) 3 | s=1 4 | for i in n: 5 | if i>0: 6 | s*=i 7 | print(s) 8 | -------------------------------------------------------------------------------- /PY01055 - SỐ XEN KẼ: -------------------------------------------------------------------------------- 1 | for i in range(int(input())): 2 | n=list(map(int,input())) 3 | if len(n)%2==0 or n[0]==n[1]: 4 | print("NO") 5 | continue 6 | kt=1 7 | for i in range(2,len(n),2): 8 | if n[i]!=n[i-2]: 9 | kt=0 10 | break 11 | print("YES" if kt else "NO") 12 | -------------------------------------------------------------------------------- /PY01056 - CHẴN – LẺ - NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math as mt 2 | c = [0]*5005 3 | c[0] = c[1] = 1 4 | for i in range(4,5001,2): 5 | c[i]=1 6 | for i in range(3,int(mt.sqrt(5000))+1): 7 | if c[i]==0: 8 | for j in range(i*i,5001,2*i): 9 | c[j]=1 10 | for i in range(int(input())): 11 | n=list(map(int,input())) 12 | s = sum(n) 13 | kt=1 14 | kt&=(c[s]==0) 15 | for i in range(len(n)): 16 | if i%2==0: 17 | kt&=(n[i]%2==0) 18 | else: 19 | kt&=(n[i]%2==1) 20 | print("YES" if kt else "NO") 21 | 22 | -------------------------------------------------------------------------------- /PY01074 - TỔNG ƯỚC SỐ: -------------------------------------------------------------------------------- 1 | import sys 2 | import math as mt 3 | import array 4 | N,M = 1 + 2*10**6,2*10**6 5 | c = array.array('i', [0]*N) 6 | for i in range(2,int(mt.sqrt(M))+1): 7 | if c[i]==0: 8 | c[i] = i 9 | for j in range(i,M//i+1): 10 | c[i*j] = i 11 | del j 12 | del M 13 | for i in range(4,N): 14 | c[i] += c[i//c[i]] if c[i] else i 15 | del N 16 | del i 17 | dem = 0 18 | n = int(sys.stdin.readline()) 19 | while 1: 20 | try: 21 | x = int(sys.stdin.readline()) 22 | dem += c[x] 23 | except: break 24 | print(dem) 25 | -------------------------------------------------------------------------------- /PY02005 - CẶP NGHỊCH THẾ: -------------------------------------------------------------------------------- 1 | import sys 2 | a = [] 3 | 4 | def di(k): 5 | l = 0 6 | r = len(a)-1 7 | while l<=r: 8 | m = (l+r)//2 9 | if k>= a[m]: 10 | r = m-1 11 | else: 12 | l = m+1 13 | a.insert(l,k) 14 | return l 15 | 16 | n = int(sys.stdin.readline()) 17 | b = list(map(int,sys.stdin.readline().split())) 18 | dem = 0 19 | for i in b: 20 | dem += di(i) 21 | print(dem) 22 | -------------------------------------------------------------------------------- /PY02013 - BIẾN ĐỔI VỀ 1: -------------------------------------------------------------------------------- 1 | import math as mt 2 | while True: 3 | n = int(input()) 4 | if n==0: 5 | break 6 | a = [] 7 | a.append(n) 8 | while n>1: 9 | if n==1: 10 | break 11 | if a.count(n)==0: 12 | a.append(n) 13 | while(n%2==0): 14 | if a.count(n)==0: 15 | a.append(n) 16 | n//=2 17 | if n==1: 18 | break 19 | if a.count(n)==0: 20 | a.append(n) 21 | n=n*3+1 22 | if a.count(n)==0: 23 | a.append(n) 24 | if a.count(n)==0: 25 | a.append(n) 26 | print(len(a)) 27 | 28 | -------------------------------------------------------------------------------- /PY02016 - XUẤT HIỆN NHIỀU LẦN NHẤT: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = int(input()) 3 | for k in range(t): 4 | n = int(input()) 5 | a = [int(i) for i in input().split()] 6 | kt=0 7 | for i in a: 8 | if a.count(i)>(n//2): 9 | print(i) 10 | kt=1 11 | break 12 | if kt==0: 13 | print("NO") 14 | 15 | -------------------------------------------------------------------------------- /PY02018 - SỐ NHỎ NHẤT CÒN THIẾU: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = 1 3 | for k in range(t): 4 | n = int(input()) 5 | a = sorted(list(map(int,input().split()))) 6 | kt=0 7 | if n==1: 8 | if a[0]>1: 9 | print(1) 10 | else: 11 | print(a[0]+1) 12 | continue 13 | if a[0]>1: 14 | print(1) 15 | else: 16 | for i in range(1,len(a)): 17 | if a[i]-a[i-1]>1: 18 | print(a[i-1]+1) 19 | kt=1 20 | break 21 | if kt==0: 22 | print(a[-1]+1) 23 | -------------------------------------------------------------------------------- /PY02019 - NGUYÊN TỐ CÙNG NHAU: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = 1 3 | for k in range(t): 4 | n = int(input()) 5 | a = sorted(list(map(int,input().split()))) 6 | for i in range(0,n-1): 7 | for j in range(i+1,n): 8 | if mt.gcd(a[i],a[j])==1: 9 | print(a[i],a[j]) 10 | -------------------------------------------------------------------------------- /PY02031 - KIỂM TRA NGUYÊN TỐ: -------------------------------------------------------------------------------- 1 | import math as mt 2 | def nt(n): 3 | if n<2: 4 | return 0 5 | for i in range(2,int(mt.sqrt(n))+1): 6 | if n%i==0: 7 | return 0 8 | return 1 9 | t = 1 10 | for k in range(t): 11 | n,m = [int(i) for i in input().split()] 12 | a = [] 13 | for i in range(n): 14 | c = list(map(int,input().split())) 15 | a.append(c) 16 | for i in range(len(a)): 17 | for j in a[i]: 18 | print(nt(j),end=" ") 19 | print() 20 | 21 | -------------------------------------------------------------------------------- /PY02036 - LIỆT KÊ CẶP SỐ NGUYÊN TỐ CÙNG NHAU: -------------------------------------------------------------------------------- 1 | import math as mt 2 | t = 1 3 | for k in range(t): 4 | n = int(input()) 5 | a = sorted(list(map(int,input().split()))) 6 | for i in range(0,n-1): 7 | for j in range(i+1,n): 8 | if mt.gcd(a[i],a[j])==1: 9 | print(a[i],a[j]) 10 | -------------------------------------------------------------------------------- /PY02060 - BÀI D. BỘI SỐ CHUNG NHỎ NHẤT: -------------------------------------------------------------------------------- 1 | import sys 2 | from sys import stdin 3 | N, mod = 10**6,10**9+7 4 | c = [0]*(N+1) 5 | c[0] = c[1] = 1 6 | for i in range(4,N+1,2): 7 | c[i] = 1 8 | for i in range(3,N+1,2): 9 | if c[i]==0: 10 | for j in range(i*i,N+1,2*i): 11 | c[j] = 1 12 | del N 13 | def pw(x,y): 14 | res = 1 15 | while y!=0: 16 | if y%2==1: 17 | res = (res*x)%mod 18 | y//=2 19 | x = (x*x)%mod 20 | return res 21 | def mu(x,n): 22 | dem,i = 0,x 23 | while i<=n: 24 | dem+=n//i 25 | i*=x 26 | return dem 27 | for _ in range(int(stdin.readline())): 28 | a,b = map(int,stdin.readline().split()) 29 | ans = 1 30 | dem = 0 31 | for i in range(2,b//2+1): 32 | if c[i]==0: 33 | ans = (ans*((mu(i,b)-mu(i,a-1))*2+1))%mod 34 | for i in range(b//2+1,b+1): 35 | if c[i]==0: 36 | dem+=1 37 | ans = (ans*pw(3,dem))%mod 38 | print(ans) 39 | -------------------------------------------------------------------------------- /PY03014 - BIỂU THỨC: -------------------------------------------------------------------------------- 1 | m = int(input()) 2 | for k in range(0,m): 3 | s = input() 4 | t="" 5 | for i in s: 6 | if i=='(' or i==')': 7 | t+=i 8 | d = [] 9 | dem=0 10 | for i in t: 11 | if i=='(': 12 | dem+=1 13 | print(dem,end=" ") 14 | d.append(dem) 15 | else: 16 | print(d[-1],end=" ") 17 | d.remove(d[-1]) 18 | print() 19 | 20 | -------------------------------------------------------------------------------- /PYKT066 - DÃY CON NGẮN NHẤT: -------------------------------------------------------------------------------- 1 | import sys 2 | from sys import stdin 3 | import math as mt 4 | def kt(a,i,m): 5 | t = a[i] 6 | for j in range(i+1,m+1): 7 | t=mt.gcd(t,a[j]) 8 | return t 9 | t = int(stdin.readline()) 10 | e = [] 11 | while True: 12 | try: 13 | e.extend(map(int, input().split())) 14 | except EOFError: 15 | break 16 | idd = 0 17 | for _ in range(t): 18 | n,k = e[idd:idd+2] 19 | idd+=2 20 | a = e[idd:idd+n] 21 | idd+=n 22 | a.insert(0,0) 23 | ans = n+1 24 | for i in range(1,n+1): 25 | if a[i]%k!=0: 26 | a[i]=-1 27 | if ans==1: 28 | print(1) 29 | continue 30 | l,r = 1,n 31 | while l<=n and a[l]==-1: 32 | l+=1 33 | while r>=1 and a[r]==-1: 34 | r-=1 35 | if l==n+1 or r==0: 36 | print(-1) 37 | continue 38 | a = a[l:(r+1)] 39 | a.insert(0,0) 40 | for i in range(1,len(a)): 41 | l,r = i,len(a)-1 42 | while l<=r: 43 | m = (l+r)//2 44 | x = kt(a,i,m) 45 | if x==k: 46 | ans=min(ans,m-i+1) 47 | r=m-1 48 | elif xy[0]: 17 | return 1 18 | else: 19 | return 0 20 | elif x[1]b.diem: 27 | return -1 28 | return 1 29 | n=int(input()) 30 | b=[] 31 | c={} 32 | a=[] 33 | ed=1 34 | for _ in range(n): 35 | s = xuly(input()) 36 | p1 = int(input()) 37 | p2 = int(input()) 38 | p3 = int(input()) 39 | p1 = (p1*3+p2*3+p3*2)/8 40 | p1=ceil(p1*100)/100 41 | b.append(sv(ed,s,p1)) 42 | a.append(p1) 43 | ed+=1 44 | a=sorted(a) 45 | a=a[::-1] 46 | a.insert(0,-1) 47 | for i in a: 48 | j=1 49 | while j