• DeHuq2
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    9 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
      link
      fedilink
      arrow-up
      2
      ·
      9 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)
      
      • 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
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          9 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