about summary refs log tree commit diff
path: root/others/mHoang
diff options
context:
space:
mode:
Diffstat (limited to 'others/mHoang')
-rw-r--r--others/mHoang/README.md75
-rw-r--r--others/mHoang/decor.c13
-rwxr-xr-xothers/mHoang/decor.py15
-rw-r--r--others/mHoang/pfactor.c21
-rw-r--r--others/mHoang/triangle.c19
5 files changed, 143 insertions, 0 deletions
diff --git a/others/mHoang/README.md b/others/mHoang/README.md
new file mode 100644
index 0000000..05aa6bc
--- /dev/null
+++ b/others/mHoang/README.md
@@ -0,0 +1,75 @@
+# mHoang
+
+## THỪA SỐ NGUYÊN TỐ (PFACTOR.*)
+
+Cho số nguyên dương n, tìm số nguyên tố p lớn nhất là ước số của n.
+
+### Dữ liệu
+
+Vào từ thiết bị nhập chuẩn số nguyên n, (2 ≤ n ≤ 10<sup>14</sup>).
+
+### Kết quả
+
+Ghi ra thiết bị xuất chuẩn một số nguyên duy nhất là ước số nguyên tố lớn nhất
+của n.
+
+### Ví dụ
+
+| Sample Input | Sample Output |
+| :----------: | :-----------: |
+|      10      |       5       |
+
+## TAM GIÁC (TRIANGLE.*)
+
+Cho ba số nguyên a, b, c là độ dài ba cạnh của một tam giác, hãy cho biết tam
+giác đó là tam giác vuông, nhọn, hay tù.
+
+### Dữ liệu
+
+Vào từ thiết bị nhập chuẩn ba số nguyên dương a, b, c cách nhau bởi dấu cách.
+
+### Kết quả
+
+Ghi ra thiết bị xuất chuẩn số 0, 1, hay 2 tùy theo tam giác đó là vuông, nhọn,
+hay tù.
+
+### Ví dụ
+
+| Sample Input | Sample Output |
+| :----------: | :-----------: |
+|     3 4 5    |       0       |
+|     3 3 3    |       1       |
+|     3 4 6    |       2       |
+
+## HỆ THỐNG ĐÈN MÀU (DECOR.*)
+
+Để trang trí cho một lễ hội, ban tổ chức đã dùng một hệ thống đèn màu gồm n đèn
+đánh số từ 1 đến n. Mỗi đèn có khả năng sáng màu xanh hoặc màu đỏ. Các đèn được
+điều khiển theo quy tắc sau:
+
+* Bấm công tắc lần 1, tất cả các đèn đều sáng màu xanh.
+* Bấm công tắc lần 2, tất cả các đèn có số thứ tự chia hết cho 2 sẽ đổi màu
+  (xanh thành đỏ và ngược lại).
+* Bấm công tắc lần 3, tất cả các đèn có số thứ tự chia hết cho 3 sẽ đổi màu
+  (xanh thành đỏ và ngược lại).
+* ...
+* Bấm công tắc lần n, tất cả các đèn có số thứ tự chia hết cho n sẽ đổi màu
+  (xanh thành đỏ và ngược lại).
+
+### Yêu cầu
+
+Xác định số đèn sáng màu xanh sau n lần bấm công tắc.
+
+### Dữ liệu
+
+Vào từ thiết bị nhập chuẩn số nguyên dương n ≤ 10<sup>18</sup>.
+
+### Kết quả
+
+Ghi ra thiết bị xuất chuẩn số đèn xanh sau lần bấm công tắc thứ n.
+
+### Ví dụ
+
+| Sample Input | Sample Output |
+| :----------: | :-----------: |
+|       6      |       2       |
diff --git a/others/mHoang/decor.c b/others/mHoang/decor.c
new file mode 100644
index 0000000..54cb2c6
--- /dev/null
+++ b/others/mHoang/decor.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+#include <math.h>
+
+int main()
+{
+	unsigned long long n;
+
+	scanf("%lld", &n);
+
+	printf("%ld\n", (unsigned long) sqrt(n));
+
+	return 0;
+}
diff --git a/others/mHoang/decor.py b/others/mHoang/decor.py
new file mode 100755
index 0000000..a083f6d
--- /dev/null
+++ b/others/mHoang/decor.py
@@ -0,0 +1,15 @@
+#!/usr/bin/env python3
+
+# Dễ thấy các đèn đổi màu lẻ lần có màu xanh, chẵn lần màu đỏ.
+#
+# Xét đèn thứ i:
+# * Giả sử phân tích i thành các ước nguyên tố: i = p1 ** q1 + ... + pm ** qm,
+#   khi đó i sẽ có k = (q1 + 1) * ... * (qm + 1) ước nguyên dương.
+# * Đèn thứ i sẽ được đổi màu ở lần bấm công tắc nhận i làm bội, hay sẽ đổi màu
+#   k lần.
+# * k lẻ khi và chỉ khi q1 + 1, ..., qm + 1 đều lẻ hay q1, ..., qm đều chẵn tức
+#   là i là số chính phương.
+#
+# Vậy kết quả cần tìm là số số chính phương từ 1 đến n.
+
+print(int(int(input()) ** 0.5))
diff --git a/others/mHoang/pfactor.c b/others/mHoang/pfactor.c
new file mode 100644
index 0000000..fee50b5
--- /dev/null
+++ b/others/mHoang/pfactor.c
@@ -0,0 +1,21 @@
+#include <stdio.h>
+#include <math.h>
+
+int main()
+{
+	long long n, sqrtn;
+	long i, tmp;
+
+	scanf("%lld", &n);
+	sqrtn = sqrt(n);
+
+	for (i = 2; i <= sqrtn && n > 1; i++)
+		while (n % i == 0) {
+			n /= i;
+			tmp = i;
+		}
+
+	printf("%lld\n", (n == 1) ? tmp : n);
+
+	return 0;
+}
diff --git a/others/mHoang/triangle.c b/others/mHoang/triangle.c
new file mode 100644
index 0000000..0f5d28e
--- /dev/null
+++ b/others/mHoang/triangle.c
@@ -0,0 +1,19 @@
+#include <stdio.h>
+
+char angle(long x, long y, long z)
+{
+	long long tmp = x * x + y * y - z * z;
+
+	return (tmp ? (tmp > 0 ? 1 : 2) : tmp);
+}
+
+int main()
+{
+	long a, b, c;
+
+	scanf("%ld %ld %ld", &a, &b, &c);
+
+	printf("%hhd\n", angle(a, b, c) * angle(b, c, a) * angle(c, a, b));
+
+	return 0;
+}