Tin học Số đẹp

Changpieces

Học sinh mới
Thành viên
29 Tháng ba 2022
1
0
1
19
Hà Nội
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Một số được gọi là số đặc biệt nếu số đó bằng tổng các ước (dương) của mình (trừ chính nó).
VD: 6 là số đặc biệt vì 6 = 1 + 2 + 3;
496 là số đặc biệt vì 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248
Lập trình: Nhập vào từ bàn phím một số nguyên dương N (N <= 1012). Kiểm tra xem N có phải là số đặc biệt không? Nếu có, thông báo ra màn hình "YES", ngược lại, ghi "NO".

Code 1:
def sodep(n):
s = 0
for i in range(1,n):
if n % i ==0 :
s += i
if s == n :
return "YES"
else :
return "NO"
n = int(input())
print(sodep(n))
Code 2:
N = int(input())
if N == 1:
print('NO')
else:
s = 0
for i in range(1, round(N ** 0.5) + 1):
if N % i == 0:
s = s + i
s = s + N / i
if N == s - N:
print('YES')
else:
print('NO')
Dạ em thắc mắc là 2 code này về lí thuyết thì đều đúng nhưng khi em chạy qua test của giáo viên thì chỉ có cái thứ 2 đúng là sao ạ ? Còn cái thứ nhất thì chỉ pass 3/4.
Em mong mn giúp đỡ ạ :<
 
Top Bottom