Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi phải bằng cách nào đó thực hiện một chức năng trong đó khi tôi thực hiện nó, tôi sẽ có thể thêm tất cả các ước số của một số, theo cách hiển thị bên dưới.

Điều này khiến tôi phát điên, tôi đã gặp vấn đề tương tự trong khoảng một giờ.

def sum_divisors(n):
  # Return the sum of all divisors of n, not including n
  divisor = 1
  while divisor < n:
    if n%divisor==0:
      return divisor
      divisor = divisor + 1
    else:
      divisor = divisor + 1

print(sum_divisors(6)) # Should be 1+2+3=6
print(sum_divisors(12)) # Should be 1+2+3+4+6=16

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

hỏi ngày 5 tháng 2 năm 2020 lúc 7:44Feb 5, 2020 at 7:44

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

2

def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum

Đã trả lời ngày 27 tháng 4 năm 2020 lúc 6:48Apr 27, 2020 at 6:48

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

Trong fonction của bạn, bạn trở lại ngay lập tức sau khi tìm thấy một ước số. Đó là lý do tại sao fonction của bạn không hoạt động cố gắng đặt mỗi n%Divisor == 0 trong danh sách ANS trả về nó vào cuối thời gian.

Hoặc cố gắng in trực tiếp.

Đã trả lời ngày 5 tháng 2 năm 2020 lúc 7:50Feb 5, 2020 at 7:50

1

Một tìm kiếm đơn giản của Google sẽ dẫn bạn đến câu trả lời với rất nhiều lời giải thích: tổng số các ước số trong Python

Trong trường hợp bạn nghĩ về một số hiệu quả:

Chúng ta cần kiểm tra các ước số cho đến

def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum
3 của một số

import math 
def sum_divisors(num) : 

    # Final result of summation of divisors 
    result = 0

    # find all divisors which divides 'num' 
    i = 2
    while i<= (math.sqrt(num)) : 

        # if 'i' is divisor of 'num' 
        if (num % i == 0) : 

            # if both divisors are same then 
            # add it only once else add both 
            if (i == (num / i)) : 
                result = result + i; 
            else : 
                result = result +  (i + num//i); 
        i = i + 1

    # Add 1 to the result as 1 is also  
    # a divisor 
    return (result + 1); 

print(sum_divisors(6))
print(sum_divisors(12))

Đã trả lời ngày 5 tháng 2 năm 2020 lúc 7:57Feb 5, 2020 at 7:57

Một số người dùng người dùngsome user

1.6632 huy hiệu vàng12 Huy hiệu bạc29 Huy hiệu đồng2 gold badges12 silver badges29 bronze badges

Đây là điều kỳ lạ:

if n%divisor==0:
      return divisor
      divisor = divisor + 1 //<= this is actually dead code, since is after the return statement...

Mặt khác:

Điều này ở đây:

divisor = divisor + 1

Hoạt động giống như một quầy nhưng bạn đang thiếu bộ tích lũy ...

Bạn nên làm một cái gì đó như

accum = 0
while divisor < n:
    foo = n % divisor
    if foo == 0:
    accum = accum + divisor

Đã trả lời ngày 5 tháng 2 năm 2020 lúc 7:47Feb 5, 2020 at 7:47

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

Φxocę 웃 пepeúpa ツxocę 웃ΦXocę 웃 Пepeúpa ツ

46.4K17 Huy hiệu vàng69 Huy hiệu bạc94 Huy hiệu đồng17 gold badges69 silver badges94 bronze badges

def sum_divisors (n):

total = [0]
divisors = 1
while divisors < n:
    if n % divisors == 0:
        result.append(divisors)
    else:
        pass
    divisors += 1
return sum(total)

Đã trả lời ngày 16 tháng 6 năm 2020 lúc 23:35Jun 16, 2020 at 23:35

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

1

Bạn có thể sử dụng vòng lặp đơn giản này để in tổng của tất cả các ước số của một số. Bạn nên sử dụng một bộ tích lũy để tăng nhiệt độ.

def sum_divisors(n):
  sum = 0
  accum = 1
  while n != 0 and accum < n:
    if n % accum == 0:
      sum += accum
    accum += 1
  return sum



print(sum_divisors(6)) # prints 6
print(sum_divisors(12)) # prints 16

Đã trả lời ngày 26 tháng 8 năm 2020 lúc 8:48Aug 26, 2020 at 8:48

Jamith Nimanthajamith NimanthaJamith NImantha

1.6992 Huy hiệu vàng22 Huy hiệu bạc27 Huy hiệu đồng2 gold badges22 silver badges27 bronze badges

def sum_divisors(n):
  sum = 0
  accum = 1
  # Return the sum of all divisors of n, not including n
  while n != 0 and accum < n:
    if n % accum == 0:
      sum += accum
    accum += 1
  return sum

print(sum_divisors(0))
# 0
print(sum_divisors(3)) # Should sum of 1
# 1
print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
# 55
print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
# 114

Đã trả lời ngày 15 tháng 9 năm 2020 lúc 21:27Sep 15, 2020 at 21:27

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

Cần có một điều kiện nếu dòng 5, do đó kết quả cần thiết sẽ được lấy cho 0

if(num==0):
return result;

Đã trả lời ngày 20 tháng 5 năm 2020 lúc 13:58May 20, 2020 at 13:58

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum
0

Đã trả lời ngày 18 tháng 10 năm 2020 lúc 11:18Oct 18, 2020 at 11:18

WaitHirawaithirawaithira

Huy hiệu vàng 18011 gold badge1 silver badge10 bronze badges

def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum
1

Couka

1.2818 huy hiệu bạc15 huy hiệu đồng8 silver badges15 bronze badges

Đã trả lời ngày 21 tháng 1 năm 2021 lúc 14:17Jan 21, 2021 at 14:17

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

Đây là mã của tôi (không làm sạch nó nhưng nó hoạt động tốt):

def sum_divisors(n): 
    sum = 0
    z = 1

    while n > z:
        if n % z == 0:
            sum = sum + z
            z = z + 1
        else:
            z = z + 1
    # Return the sum of all divisors of n, not including n
    return sum
2

Hướng dẫn sum of divisors of a number in python using while loop - tổng các ước của một số trong python bằng cách sử dụng vòng lặp while

Đã trả lời ngày 8 tháng 9 lúc 16:37Sep 8 at 16:37

Làm thế nào để bạn tổng hợp một số ước số trong Python?

Toán Python: Trả về tổng của tất cả các ước số của một số..
Giải pháp mẫu:-.
Mã Python: def sum_div (số): chia )) in (sum_div (12)) ....
Trình bày bằng hình ảnh:.
Sơ đồ: ... .
Trình chỉnh sửa mã Python:.

Làm thế nào để tôi tìm thấy các ước số của một số trong Python cho Loop?

Trước tiên, người dùng phải nhập giá trị và lưu trữ nó trong một biến ..
Sử dụng một vòng lặp để tạo số từ 1 đến n ..
Sử dụng kiểm tra câu lệnh IF nếu số chia cho I đưa phần còn lại là 0, về cơ bản là chia của số nguyên ..
In các ước số của số ..

Trong khi các vòng trong Python là gì?

Vòng lặp trong Python là gì?Vòng lặp trong khi trong Python được sử dụng để lặp lại một khối mã miễn là biểu thức kiểm tra (điều kiện) là đúng.Chúng tôi thường sử dụng vòng lặp này khi chúng tôi không biết số lần lặp lại trước.used to iterate over a block of code as long as the test expression (condition) is true. We generally use this loop when we don't know the number of times to iterate beforehand.

Làm thế nào để bạn tìm thấy số hoàn hảo trong vòng lặp trong một thời gian trong Python?

Số hoàn hảo trong mã Python Bước 1: Trong bước này, trước tiên chúng tôi khởi tạo tổng với 1 và lặp I với số 1. Bước 2: Trong bước này, chúng tôi lấy đầu vào từ người dùng và đánh máy nó vào số nguyên.Bước 3: Trong bước này, chúng tôi lặp lại bằng cách sử dụng Python trong khi vòng lặp bằng cách sử dụng phân chia sàn.STEP 1: In this step, we first initialize the sum with 1 and iterate i with number 1. STEP 2: In this step, we take input from the user and typecast it into the integer. STEP 3: In this step, we iterate using the python while loop by using the floor division.