59

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
[-] DeHuq2@lemmygrad.ml 2 points 6 months ago* (last edited 6 months ago)

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.

[-] GrainEater@lemmygrad.ml 7 points 6 months ago

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

[-] DeHuq2@lemmygrad.ml 4 points 6 months ago* (last edited 6 months ago)
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)
[-] DeHuq2@lemmygrad.ml 2 points 6 months ago

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)
[-] GrainEater@lemmygrad.ml 2 points 6 months ago

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)

[-] DeHuq2@lemmygrad.ml 2 points 6 months ago* (last edited 6 months ago)

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
[-] GrainEater@lemmygrad.ml 2 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)
this post was submitted on 18 Mar 2024
59 points (96.8% liked)

GenZedong

4185 readers
1 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