Ở chương trình toán lớp 6 ta đã học 2 loại số (số nguyên tố, hợp số): Một số tự nhiên lớn hơn 1 là số nguyên tố khi nó chỉ có 2 ước số là số 1 và chính nó. Một số tự nhiên là hợp số nếu số đó viết được thành tích của một cặp số tự nhiên là ước của số đó (trừ số 1 và chính nó). Cho số nguyên dương a. Em hãy đếm xem số a có bao nhiêu cặp (r1; r2) thỏa mãn a = r1 x r2 và 1 <rı ≤ r2 < a; r1, Γ2 € Ν* Giải thích: Số 16 có các ước tự nhiên là: 1; 2; 4; 8; 16 ta thấy 1 x 16 = 16 (loại) 2 x 8 = 16 (lấy) 4 x 4 = 16 (lấy) Vậy số 16 có 2 cặp hợp số là (2; 8), (4; 4).
LƯU Ý :A<=10^18
chạy tối đa 1s
from math import sqrt, ceil
def sieve(maxn):
isPrime = [True]*(maxn + 1)
isPrime[0] = False
isPrime[1] = False
i = 2
while i*i <= maxn:
if isPrime[i]:
j = i*i
while j <= maxn:
isPrime[j] = False
j += i
i += 1
primes = []
for i in range(2, maxn + 1):
if isPrime[i]:
primes.append(i)
return primes
def test(a, n, k, m):
mod = pow(a, m, n)
if mod == 1 or mod == n - 1:
return True
for l in range(1, k):
mod = (mod*mod) % n
if mod == n - 1:
return True
return False
def isPrime(n):
if n in [2,3,5,7,11,13,17,19,23,29,31,37]:
return True
elif n < 37:
return False
k = 0
m = n - 1
while m % 2 == 0:
m //= 2
k += 1
checkset = [2,3,5,7,11,13,17,19,23,29,31,37]
for a in checkset:
if not test(a, n, k, m):
return False
return True
n = int(input())
primes = sieve(10**6)
res = 1
for p in primes:
if p**3 > n:
break
cnt = 0
while n % p == 0:
n //= p
cnt += 1
res *= cnt + 1
if isPrime(n):
res *= 2
else:
squareRoot = int(sqrt(n))
if squareRoot*squareRoot == n and isPrime(squareRoot):
res *= 3
elif n != 1:
res *= 4
print(ceil((res - 2) / 2))
vì (r1; r2) thỏa mãn a = r1 x r2 và 1 <rı r2 < a; r1, Γ2 Ν* .
nên Số 16 có các ước tự nhiên là: 1; 2; 4; 8; 16
16 = 16 (loại) 2 x 8 = 16 (lấy) 4
x 4 = 16
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 3 - Năm thứ ba ở cấp tiểu học, áp lực học tập bắt đầu hình thành nhưng chúng ta vẫn còn ở độ tuổi ăn, tuổi chơi. Hãy biết cân đối giữa học và chơi, luôn giữ sự hào hứng trong học tập nhé!
Copyright © 2024 Giai BT SGK