| Hoàng Minh Nguyệt | |
|
|
|
Tác giả | Thông điệp |
---|
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Wed Nov 30, 2022 11:46 pm | |
| BÀI 29: Hoán vị chữ số lớn nhất Xác định bài toán: +/ Input: Cho N là số tự nhiên 3 chữ số +/ Output: Tìm hoán vị chữ số có giá trị lớn nhất của N. ( Ví dụ : Với N là 213 thì ta có các hoán vị là 123, 231, 312, 321, 132 và 321 là hoán vị có giá trị lớn nhất) Thuật toán: Tách các chữ số của N lưu vào a, b, c: +/ Nếu a < b thì hoán đổi vị trí của a và b +/ Nếu b < c thì hoán đổi vị trí của b và c Thực hiện xong 2 lần hoán đổi này, giá trị thu được có thể chưa lớn nhất nên ta cần thực hiện so sánh thêm 1 lần nữa: +/ Nếu a < b thì hoán đổi vị trí của a và b +/ Nếu b < c thì hoán đổi vị trí của b và c
Code:
N = int(input()) a = N//100 b = (N//10)%10 c = N%10 if a<b: a,b=b,a if b<c: b,c=c,b if a<b: a,b=b,a if b<c: a,c=c,b N = a*100 + b*10 + c print(N)
Thử: 259 Kết quả: 952
Được sửa bởi Hoàng Minh Nguyệt ngày Wed Dec 07, 2022 9:44 am; sửa lần 1. | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Wed Nov 30, 2022 11:46 pm | |
| Bài 30: Xác định bài toán: input: Nhập số N có 3 chữ số output: Đưa ra số có 2 chữ số nhỏ nhất sau khi thực hiện xóa số Thuật toán: Tách N thành a, b, c ghép thành ab, ac, bc tìm số nhỏ nhất rồi đưa ra Code:
n=int(input()) a=n//100 b=(n//10)%10 c=n%10 v1=a*10+b v2=b*10+c v3=a*10+c rmin=v1 if rmin>v2: rmin=v2 if rmin>v3 rmin=v3 print(rmin)
Test: 123 Kq: 12 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Wed Dec 07, 2022 9:46 am | |
| Bài 31: Xác định bài toán: input: Nhập a, b, c, d, m nguyên dương output: Nếu phương trình vô số nghiệm ghi "Multiple" Vô nghiệm ghi "None" Nếu phương trình có nghiệm ghi dạng x=p/q. Thuật toán: Biến đổi phương trình về dạng phương trình bậc nhất một ẩn p.x+q =0 Với p=a-e*c; q=b-e*d; và x ≠ -d/c. -Nếu p= 0 thì Nếu q = 0 thì thông báo “Multiple” Ngược lại, “None” -Ngược lại, Tính x=-q/p. Nếu x ≠ -d/c thì cout << -q <<”/"<<p Code:
a=int(input()) b=int(input()) c=int(input()) d=int(input()) m=int(input()) if(d==m==0): print("NONE") else: p=a-m*c q=m*d-b if(p==0): if(q==0): print("MULTIPLE") else: print("NONE") else: x=(-p)/q if(x==(-d)/c): print("NONE") else: if(p<0): p*=-1 q*=-1 print("RESULT:",q,"/",p)
| |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Wed Dec 07, 2022 9:57 am | |
| Bài 37: N=int(input()) for i in range(1, N+1): if(i%2==0)and(i%3!=0): print(i)
| |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Dec 08, 2022 10:11 am | |
| Bài 39: - Xác định bài toán: Input: Nhập N nguyên dương Output: Đưa ra các ước nguyên dương của N
- Thuật toán: Duyệt i từ 1 đến int(sqrt(n)) nếu n chia hết cho i thì in ra i nếu n chia i khác i thì in ra giá trị n chia i
Code:
n = int(input()) for i in range(1, n // 2 + 1): if n % i == 0: print(i) print(n)
- Test mẫu: Ví dụ: 6 Kết quả: 1 2 3 6 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Dec 08, 2022 10:12 am | |
| Bài 43: - Xác định bài toán: Input: Nhập N Output: Đưa ra số ước nguyên dương của N
- Thuât toán:
Code:
from math import sqrt n = int(input()) res = 0 for i in range(1, int(sqrt(n))): if n % i == 0: res += 1 if i!= n // i: res += 1 print(res)
- Test mẫu: Ví dụ: N = 20 Kết quả: 5 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Dec 08, 2022 10:13 am | |
| Bài 46: - Xác định bài toán: Input: Nhập N nguyên dương Output: N là số nguyên tố hoặc N không là số nguyên tố
- Thuật toán: Nếu N ≤ 1: N N không phải là số nguyên tố Tiếp theo ta duyệt từ 2 đến sqrt(n) Nếu N chia hết cho i, vậy đó không phải là số nguyên tố Còn lại là số nguyên tố
Code:
from math import sqrt def prime(u): if u <= 1: return False i = 2 while i * i <= u: if u % i == 0: return False i += 1 return True n = int(input()) print(prime(n)) | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Fri Dec 09, 2022 2:27 pm | |
| Bài 47: - Xác định bài toán: Input: Nhập a,b Output: Các số nguyên tố thuộc đoạn [a,b]
- Thuật toán: Vì bài toán phải kiểm tra tính nguyên tố nhiều lần nên ta xây dựng chương trình con dạng hàm để kiểm tra tính nguyên tố. Duyệt từ giá trị đầu đến giá trị cuối, nếu là số nguyên thì in ra.
Code:
from math import sqrt def prime(u): if u <= 1: return False i = 2 while i * i <= u: if u % i == 0: return False i += 1 return True a = int(input()) b = int(input()) for i in range(a,b + 1): if prime(i): print(i) | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Jan 05, 2023 9:33 pm | |
| Bài 49: - Xác định bài toán: Input: Nhập số nguyên dương a và b Output: Đưa ra ước chung lớp nhất của a và b
- Thuật toán: Áp dụng giải thuật Ơ'clit để tìm ước chung lớn nhất của 2 số nguyên dương.
Code:
def gcd(v0, v1): while v1 > 0: r = v0 % v1 v0 = v1 v1 = r return v0 a = int(input()) b = int(input()) print(gcd(a, b)) | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Jan 05, 2023 9:34 pm | |
| Bài 50: - Xác định bài toán: Input: Nhập số nguyên dương N Output: Phân tích N thành tích các thừa số nguyên tố
- Thuật toán: Ta khai báo biến đếm bằng 2 rồi lấy lấy n chia cho biến đếm, mỗi lần chia lại in biến đếm ra, đến khi n không chia hết cho biến đếm nữa thì ta tăng biến đếm lên, đến khi biến đếm > sqrt(n)
Code:
def phan_tich(u): i = 2 while i * i <= u: if u % i == 0: print(i) u //= i else: i += 1 if u > 1: print(u) n = int(input()) phan_tich(n)
[b]- Test mẫu: Ví dụ: N=40 Kết quả: 2 2 2 5
| |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Thu Jan 05, 2023 9:35 pm | |
| Bài 52: - Xác định bài toán: Input: Nhập số nguyên dương N Output: Đưa ra tổng chữ số của N
- Thuật toán: Khai báo biến tổng = 0 Ta sử dụng vòng lặp while để thực hiện cắt số, với mỗi số cắt được ta cộng dồn vào biến tổng.
Code:
n = int(input()) s = 0 while n > 0: s += n % 10 n //= 10 print(s)
- Test mẫu: Ví dụ: N= 678 Kết quả: 21 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Fri Mar 31, 2023 9:17 am | |
| Bài 56: -Xác định bài toán Input: số nguyên dương N và dãy a1,a2,...,aN Output: liệt kê phần tử là số chẵn trong dãy
-Thuật toán nhập dãy vào dãy a[i] Duyệt từ đầu đến cuối dãy ,nếu a[i] là số chẵn thì đưa phần tử đó ra, mỗi phần tử cách nhau 1 dấu cách
Code:
n= int(input()) a= list() for i in range (0,n): a.append(int(input())) for i in range (0,n): if a[i] % 2 == 0: print(a[i])
Test: 2 3 2 5 7 Kết quả: 2 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Fri Mar 31, 2023 9:18 am | |
| Bài 57: -Xác định bài toán Input: số nguyên dương N và dãy a1,a2,...,aN Output: đưa ra vị trí các phần tử là số chính phương trong dãy
-Thuật toán số chính phương là số có căn bậc hai là một số nguyên biểu thức toán học: căn u=[căn u] nhập dãy vào mảng a[i] Duyệt từ đầu đến cuối dãy ,nếu a[i] là số chính phương thì đưa vị trí i ra mỗi giá trị tìm được cách nhau 1 dấu cách Code:
from math import sqrt from math import trunc
n= int(input()) a= list()
for i in range(0,n): a.append(int(input()))
Bộ test 4 3 1 4 5 Kết quả : 2 3 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Fri Mar 31, 2023 9:19 am | |
| Bài 58: -Xác định bài toán Input: số nguyên dương N và dãy a1,a2,...,aN Output: đếm số lượng các phần tử trong dãy chia hết cho 2 nhưng không chia hết cho 3.
-Thuật toán nhập dãy vào dãy a[i]; Res = 0 Duyệt từ đầu đến cuối dãy ,nếu a[i] chia hết cho 2 và không chia hết cho 3 thì tăng biến Res lên một đơn vị. Đưa biến Res ra.
Code:
from math import sqrt from math import trunc
n = int(input()) a = list()
for i in range(0,n): a.append(int(input()) for i in range(0,n): if sqrt(a[i]) == trunc(sqrt(a[i])): print(i)
Bộ test 4 1 6 5 Kq: 1 | |
|
| |
Hoàng Minh Nguyệt
Tổng số bài gửi : 43 Join date : 05/10/2022
| Tiêu đề: Re: Hoàng Minh Nguyệt Fri Mar 31, 2023 9:19 am | |
| Bài 59: -Xác định bài toán Input: số nguyên dương N và dãy a1,a2,...,aN Output: phần tử có giá trị nhỏ nhất.
-Thuật toán nhập dãy vào mảng a Khởi tạo [i]rmin = trunc(1e9); Duyệt từ đầu đến cuối dãy ,nếu a[i] < rmin thì cập nhật lại rmin = a[i] Đưa rmin ra.
Code:
n = int(input()) a = list()
for i in range(0,n): a.append(int(input())) rmin = a[0]
for i in range(1,n): rmin = min(rmin, a[i]) print(rmin)
Bộ test 3 1 2 5 Kq: 1 | |
|
| |
Sponsored content
| Tiêu đề: Re: Hoàng Minh Nguyệt | |
| |
|
| |
| Hoàng Minh Nguyệt | |
|