Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import Foundation
- var digits = 3...1000
- var arr = Array([Int](digits.lowerBound..<digits.upperBound))
- var divisibles = Array<Int>()
- var permutablesArr = Array<Array<Character>>()
- for idx in arr {
- if(idx % 8 == 0) {
- if (idx % 10 == 0) {
- divisibles.append(idx)
- }
- }
- }
- func arrCh(a: Array<Character>) -> Array<Character> {
- let arrC:Array<Character> = a
- let newStr = arrC.map({$0})
- return newStr
- }
- //MARK: print our permutations as an array...
- func newPermute(n:Int, _ a: inout Array<Character>) -> Array<Character> {
- if n == 1 {print(a); return ["ryan".characters.first!]}
- for i in 0..<n-1 {
- newPermute(n: n-1, &a)
- swap(&a[n-1], &a[(n%2 == 1) ? 0 : i ])
- let newString = arrCh(a:a)
- permutablesArr.append(newString)
- }
- return a
- }
- //MARK: loop over all our divisible by 8 obvious numbers, and convert from array to int then push into new obj...
- divisibles.flatMap{$0}.forEach { (anyNum : Int) -> () in
- let numToStr = String(anyNum)
- var strArr = Array(numToStr.characters)
- let c = arrCh(a: strArr)
- permutablesArr.append(c)
- var backInArr = Array<String>()
- for j in c {
- if let elm = j as Character? {
- let strs = String(elm)
- backInArr.append(strs)
- }
- }
- let list = backInArr.joined(separator: "")
- let lastPermutation = newPermute(n: strArr.count, &strArr)
- }
- var allPermutablesDivisibleBy8 = Array<Int>()
- for item in permutablesArr {
- if let itm = item as Array<Character>? {
- let st = String(itm)
- let asInt = (st as NSString).integerValue
- if(asInt % 8 == 0) {
- allPermutablesDivisibleBy8.append(asInt)
- }
- }
- }
- print("//////////////////////All numbers from permutation & 3...1000 that are divisible by 8")
- allPermutablesDivisibleBy8 = Array(Set(allPermutablesDivisibleBy8))
- print("divisible by \(allPermutablesDivisibleBy8.sorted())") // put back into incremental order...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement