Hướng dẫn perfect number in python using while loop - số hoàn hảo trong python sử dụng vòng lặp while

Không có lỗi trong mã này nhưng nó không in kết quả. Ở đây, những gì có thể là vấn đề.

# Using WHILE LOOP
num = int(input('Enter any positive integer: '))
sum1 = 0
i = 1

if num <= 0:
    print('Invalid Number.')
else:
    while(i < num):
        if num % i == 0:
            sum1 = sum1 + i
            i = i + 1
    
    if sum1 == num:
        print(num, "is a perfect number")
    else:
        print(num, "is not a perfect number")

Hỏi ngày 2 tháng 8 năm 2021 lúc 7:07Aug 2, 2021 at 7:07

Hướng dẫn perfect number in python using while loop - số hoàn hảo trong python sử dụng vòng lặp while

3

Vấn đề nằm ở đây: if num % i == 0. Toán tử == kiểm tra xem phần còn lại của num/i là 0. Nếu có, thì nó sẽ cập nhật i. Nhưng, nếu

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
0 không phải là 0, thì nó không bao giờ thêm bất cứ thứ gì vào i. Vì vậy, với mỗi lần lặp, bạn đang làm điều tương tự:
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
2.remainder of num/i is 0. If yes, then it updates i. But, if
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
0 is not 0, then it never adds anything to i. So, with each iteration, you are doing the same thing:
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
2.

Bạn cần phải mang

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
3 bên ngoài tuyên bố
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
4 vì i sẽ tăng bất kể số có chia hết hay không.

Ngoài ra, tốt hơn là sử dụng

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
6. Xem sự khác biệt giữa ADD và IADD

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1

Đã trả lời ngày 2 tháng 8 năm 2021 lúc 7:21Aug 2, 2021 at 7:21

1

Bạn đặt

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
7, vì vậy
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
8, i sẽ không được cập nhật. Bạn chỉ cần thêm khác sau if num % i == 0.

num = int(input('Enter any positive integer: '))
sum1 = 0
i = 1

if num <= 0:
    print('Invalid Number.')
else:
    while(i < num):
        if num % i == 0:
            sum1 = sum1 + i
            i += + 1
        else:
            i+=1
    if sum1 == num:
        print(num, "is a perfect number")
    else:
        print(num, "is not a perfect number")

Đã trả lời ngày 2 tháng 8 năm 2021 lúc 7:14Aug 2, 2021 at 7:14

MHPMHPMHP

3323 Huy hiệu bạc7 Huy hiệu Đồng3 silver badges7 bronze badges

Bạn thiết lập một vòng vô hạn trong khi vòng lặp.

Nếu

num = int(input('Enter any positive integer: '))
sum1 = 0
i = 1

if num <= 0:
    print('Invalid Number.')
else:
    while(i < num):
        if num % i == 0:
            sum1 = sum1 + i
            i += + 1
        else:
            i+=1
    if sum1 == num:
        print(num, "is a perfect number")
    else:
        print(num, "is not a perfect number")
1 là đúng và
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
2 là sai, vòng lặp trong khi sẽ chạy vô hạn. Bạn có thể xác minh điều này bằng cách sử dụng một câu lệnh in bên trong vòng lặp trong khi. Như thế này:

while(i < num): 
        if num % i == 0:
            sum1 = sum1 + i
            i = i + 1
        print('Passed the if statement')

Nếu

num = int(input('Enter any positive integer: '))
sum1 = 0
i = 1

if num <= 0:
    print('Invalid Number.')
else:
    while(i < num):
        if num % i == 0:
            sum1 = sum1 + i
            i += + 1
        else:
            i+=1
    if sum1 == num:
        print(num, "is a perfect number")
    else:
        print(num, "is not a perfect number")
3 được in nhiều lần thì
while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
2 là sai và câu lệnh IF bị bỏ qua, và vòng lặp trong khi tiếp tục chạy và bỏ qua câu lệnh IF.

Khi bạn đã tìm ra vấn đề, bạn có thể tìm ra nhiều giải pháp. Tôi có thể đề nghị di chuyển sự gia tăng của tôi ra khỏi câu lệnh IF để bất cứ khi nào

while(i < num):
    if num % i == 0:
        sum1 = sum1 + i
    i = i + 1
2 kết quả thành sai, tôi sẽ được tăng lên và kiểm tra lại. Vì vậy, vòng lặp trong khi có thể trông như thế này:

while(i < num): 
        if num % i == 0:
            sum1 = sum1 + i
        i = i + 1

Đã trả lời ngày 2 tháng 8 năm 2021 lúc 7:28Aug 2, 2021 at 7:28

Hướng dẫn perfect number in python using while loop - số hoàn hảo trong python sử dụng vòng lặp while

Chơi với những con số là điều mà chúng ta đang làm từ thời thơ ấu. Các hoạt động số học cơ bản được thực hiện trên các số tạo ra kết quả có giá trị. Trong chuyến đi học tập, chúng ta phải nhấn mạnh hơn vào sự phát triển logic trong toán học khi chúng trở thành nền tảng của lập trình.

Trong bài viết này, chúng ta hãy thảo luận về một con số hoàn hảo là gì, các bước để xác định xem một số có hoàn hảo hay không, và cuối cùng, chúng ta sẽ thấy chương trình của nó có thể được viết bằng Python như thế nào.

Vậy hãy bắt đầu…

Đầu tiên, hãy để chúng tôi hiểu một con số hoàn hảo là gì?

Một số hoàn hảo là một số trong đó tổng số các chia của một số bằng số.

Hãy chắc chắn rằng chúng ta phải loại trừ số khi chúng ta đang tính tổng số các ước số.

Bây giờ, chúng ta sẽ thấy những bước liên quan đến việc xác định con số hoàn hảo.

  1. Trước hết, chúng tôi sẽ yêu cầu người dùng nhập một số nguyên sẽ được lưu trữ trong một biến.
  2. Bây giờ, chúng tôi sẽ khai báo một biến có tên là 'Sum', trong đó chúng tôi sẽ lưu trữ tổng số các ước số của số đã cho.
  3. Nhiệm vụ tiếp theo là, để sử dụng một vòng lặp cho vòng lặp trong đó chúng tôi sẽ chia số của chúng tôi với số được khởi tạo cho biến i, sau đó chúng tôi sẽ tăng giá trị của i và kiểm tra xem các số cung cấp cho chúng tôi là phần còn lại là không. Những con số này sẽ là các ước số của chúng tôi.
  4. Bây giờ chúng tôi sẽ lấy từng chia của số đó và thêm nó với biến 'tổng'.
  5. Cuối cùng, chúng tôi sẽ sử dụng từ khóa tuyên bố quyết định 'nếu' để so sánh số được đưa ra bởi người dùng với giá trị của tổng.
  6. Nếu các giá trị bằng nhau, chúng tôi sẽ hiển thị kết quả là 'đó là một số hoàn hảo', nếu không chúng tôi sẽ hiển thị, 'đó không phải là một số hoàn hảo'.

Đã đến lúc phải xem chương trình Python-

Thí dụ -

Output:

Enter the number: 6
The entered number is a perfect number
Enter the number: 25
The entered number is not a perfect number

Giải trình -

Trong chương trình được đưa ra ở trên, chúng tôi có-

  1. Chúng tôi có một biến 'num' và yêu cầu người dùng cung cấp giá trị của nó.
  2. Như đã thảo luận trước đó, chúng tôi đã tuyên bố biến SUM_V là 0.
  3. Bây giờ, chúng tôi đã sử dụng vòng lặp For có phạm vi từ 1 đến số do người dùng cung cấp.
  4. Bước tiếp theo là kiểm tra xem số khi chia với tất cả các số được cung cấp trong phạm vi cho phần còn lại là 0.
  5. Các giá trị đó sẽ được thêm vào và sau đó được lưu trữ trong biến SUM_V.
  6. Cuối cùng, chúng tôi sẽ sử dụng 'IF' để so sánh tổng số các ước tính với số và hiển thị kết quả cần thiết.
  7. Trong chương trình này, người dùng đã cung cấp các giá trị 6 và 25 và đầu ra mong muốn được hiển thị.

Hãy để chúng tôi xem xét một chương trình khác, nơi chúng tôi sẽ thực hiện tương tự với sự trợ giúp của một chức năng.

Ví dụ - 2:

Output:

Giải trình -

Trong chương trình được đưa ra ở trên, chúng tôi có-

Chúng tôi có một biến 'num' và yêu cầu người dùng cung cấp giá trị của nó.

Như đã thảo luận trước đó, chúng tôi đã tuyên bố biến SUM_V là 0.


Số hoàn hảo trong vòng lặp trong Python là gì?

Dưới đây là mã nguồn của chương trình Python để kiểm tra xem một số là một số hoàn hảo.Đầu ra chương trình cũng được hiển thị dưới đây.n = int (input ("nhập bất kỳ số nào:")) sum1 = 0 cho i trong phạm vi (1, n): if (n % i == 0): sum1 = sum1 + i if (sum1 == n):In ("Số là một con số hoàn hảo!n = int(input("Enter any number: ")) sum1 = 0 for i in range(1, n): if(n % i == 0): sum1 = sum1 + i if (sum1 == n): print("The number is a Perfect number!

Những con số hoàn hảo từ 1 đến 100 là gì?

Chỉ có 2 số hoàn hảo từ 1 đến 100 là 6 và 28.6 and 28.

Là trong khi thực sự pythonic?

Vòng lặp "trong khi đúng" trong Python chạy mà không có bất kỳ điều kiện nào cho đến khi câu lệnh Break thực hiện bên trong vòng lặp.Để chạy một tuyên bố nếu một python trong khi vòng lặp bị lỗi, lập trình viên có thể thực hiện một con trăn "trong khi" với vòng lặp khác.Python không hỗ trợ vòng lặp "làm trong khi".. To run a statement if a python while loop fails, the programmer can implement a python "while" with else loop. Python does not support the "do while" loop.

1 là một số hoàn hảo?

Một số hoàn hảo là một số nguyên dương bằng tổng số các giao diện dương của nó, không bao gồm chính số.1 chỉ có 1 ước số, tức là 1. Do đó, 1 không phải là một số hoàn hảo.1 is not a perfect number.