Jul-17-2018, 04:32 PM
My current Code is below. I am attempting to take my outputs from this code and place it into a .txt or .csv file.
When I run this, I am getting the error "write() argument must be str, not int" -- does anyone have any suggestions on what I need to fix to make this work? have been struggling with it for a few days but cant seem to figure out the issue. Thank you in advance for your help!
When I run this, I am getting the error "write() argument must be str, not int" -- does anyone have any suggestions on what I need to fix to make this work? have been struggling with it for a few days but cant seem to figure out the issue. Thank you in advance for your help!
def getAllCombinations(s, length): if length == 0: return [''] else: ret = [] for idx, c in enumerate(s): combos = getAllCombinations(s[0:idx] + s[idx+1:], length - 1) for i in range(len(combos)): combos[i] = c + combos[i] ret += combos return ret def getPermutations(s, ret, swapIdx = 0): if swapIdx == len(s): ret.append(int(''.join(s))) for i in range(swapIdx, len(s)): cpy = [c for c in s] cpy[swapIdx], cpy[i] = cpy[i], cpy[swapIdx] getPermutations(cpy, ret, swapIdx + 1) def getAllPermutations(i): s = str(i) allPerms = set() for i in range(len(s)): curCombos = getAllCombinations(s, i + 1) for combo in curCombos: ret = [] getPermutations(combo, ret) allPerms = allPerms.union(set(ret)) return list(allPerms) def isPrime(n): if n==2 or n==3: return True if n%2==0 or n<2: return False for i in range(3,int(n**0.5)+1,2): # only odd numbers if n%i==0: return False return True def getNumPrimes(i): perms = getAllPermutations(i) numprimes = 0 for perm in perms: if (isPrime(perm)): numprimes += 1 return numprimes def find_maxPrimes(): max = 0 maxNum = 0 for i in range (1000, 10000): cur = getNumPrimes(i) if (max < cur): max = cur maxNum = i return maxNum #print(find_maxPrimes()) def find_maxPrimes2(): # max = 0 # maxNum = 0 #Printing here directly for i in range (1000, 10000): print (i, " ---> ", getNumPrimes(i)) #print(find_maxPrimes2()) fh = open("numperms","a") fh.write(find_maxPrimes()) fh.write(find_maxPrimes2()) fh.close()