this post was submitted on 18 Mar 2024
1 points (100.0% liked)

GenZedong

4242 readers
12 users here now

This is a Dengist community in favor of Bashar al-Assad with no information that can lead to the arrest of Hillary Clinton, our fellow liberal and queen. This community is not ironic. We are Marxists-Leninists.

This community is for posts about Marxism and geopolitics (including shitposts to some extent). Serious posts can be posted here or in /c/GenZhou. Reactionary or ultra-leftist cringe posts belong in /c/shitreactionariessay or /c/shitultrassay respectively.

We have a Matrix homeserver and a Matrix space. See this thread for more information. If you believe the server may be down, check the status on status.elara.ws.

Rules:

founded 3 years ago
MODERATORS
 

Welcome again to everybody! Make yourself@home. In the time-honoured tradition of our group, here is the weekly discussion thread.

Matrix homeserver and space
Theory discussion group on Matrix
● Find theory on ProleWiki, marxists.org, Anna's Archive and libgen; audio versions by Socialism For All

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 0 points 6 months ago* (last edited 6 months ago) (7 children)

What did I do wrong? I could look up proper solution to this exercise but I would still like to know what exactly is off. I feel like its something super obvious and stupid.

[–] [email protected] 0 points 6 months ago (6 children)

general advice: divide your code into multiple functions (e.g. instead of arbitrarily using '0' to end a loop, put the loop in its own function with a descriptive name and return when appropriate) and check if those functions produce the expected output

also, post your code as a Markdown code block, not a screenshot

[–] [email protected] 0 points 6 months ago (5 children)

num = [] Ms = [] while len(num) <= 5: for f in range(1,1000000): a = 452021 + f mmin = 0 mmax = 0 while mmin == 0: for n in range(2,a-1): if a % n == 0: mmin = n if n == a-1 and a % n != 0: mmin = '0' while mmax == 0: for n in range(a-1,2,-1): if a % n == 0: mmax = n if n == 2 and a % n !=0: mmax = '0' M = int(mmax) + int(mmin) if M % 7 == 3: num.append(a) Ms.append(M) print(Ms) print(num)

[–] [email protected] 0 points 6 months ago (1 children)

I figured it out! I just needed to use break.

num = []
Ms = []
def Fmmin(va):
    while va == 0:
        for n in range(2, number):
            if number % n == 0:
                va = n
                break
            if n == number - 1 and number - 1 % n != 0:
                va = '0'
    return va
def Fmmax(va):
    while va == 0:
        for n in range(number-1, 1, -1):
            if number % n == 0:
                va = n
                break
            if n == 2 and number % n != 0:
                va = '0'
    return va

for f in range(1,10000000):
    number = 452021 + f
    mmin = 0
    mmax = 0
    mmin = Fmmin(mmin)
    mmax = Fmmax(mmax)
    if int(mmax) > 0 and int(mmin) > 0:
        M = mmax + mmin
        if M % 7 == 3:
            num.append(number)
            Ms.append(M)
    if len(num) >= 5:
        break
print(Ms)
print(num)
[–] [email protected] 0 points 6 months ago (1 children)

You can improve the code by returning n and 0 respectively, no need to use a loop variable. The while va == 0 is either unnecessary (if it runs once) or can cause an endless loop (since nothing changes between iterations)

[–] [email protected] 0 points 6 months ago* (last edited 6 months ago) (1 children)

Fixed it now!

def Fmmin():
    for n in range(2, number):
        if number % n == 0:
            return n
        if n == number - 1 and number - 1 % n != 0:
            return 0
def Fmmax():
    for n in range(number-1, 1, -1):
        if number % n == 0:
            return n
        if n == 2 and number % n != 0:
            return 0
[–] [email protected] 0 points 6 months ago

one more piece of advice: try to avoid global variables when possible (in this case, you could pass number as an argument instead)

load more comments (3 replies)
load more comments (3 replies)
load more comments (3 replies)