Idleness limit exceeded


#1

Здравствуйте, решаю контестики на яндексе, код работает у меня в компиляторе и вроде даже правильно, но на самом сайте ошибка: Idleness limit exceeded

Пару раз переписал, всё равно не совсем понимаю что именно мне делать, гугл тоже не помог

Код
import Foundation


let fileName = "input.txt"




/* 

Назовём угарными все делители числа, отличные от него самого и единицы. И еще они должны быть нечётными. Угарно. На вход программе подаётся два числа в двух строках - a и b. Ваша задача - вывести количество чисел из промежутка [a,b], имеющих ровно 10 угарных делителей. P.S a и b могут быть довольно большими. a,b<=1000000000

!=1, !=n, нечет -> все числа с 10 такими


*/


func  f() {
  var count = 0
guard let line = try? String(contentsOfFile: fileName) 
  else { return }
  let nums = line.split(separator: "\n")
 guard nums.count == 2, let a = Int(nums[0]), let b = Int(nums[1])
  else { return }

  func limit (n: Int) -> Bool {
    let sum = String(n).compactMap{Int(String($0))}.reduce(0, +)
    if sum % 3 == 0 || sum % 5 == 0 || sum % 7 == 0 || sum % 9 == 0 || sum % 11 == 0 ||
    sum % 13 == 0 || sum % 15 == 0 || sum % 17 == 0 {
      return true
    }
    else { return false }
  }

  func limit2 (n: Int) -> Bool {
    if n % 3 == 0 && n % 5 == 0 && n % 7 == 0 && n % 9 == 0 && n % 11 == 0 && n % 13 == 0 {
      return false
    }
    else { return true }
  } 

  for i in a...b {
    var n = 0
    if i > 309 {
    for j in 3...i-1 {
      if n < 11 && limit2(n : i) == true {
          if i % j == 0 && j % 2 == 1 {
            n += 1
          }
          }
    }
    if n == 10 {
      count += 1
    }
  }
  }
  let result = ("\(count)")
    try? result.write(toFile: "output.txt", atomically: true, encoding: .utf8)
}

f()
Задание

Назовём угарными все делители числа, отличные от него самого и единицы. И еще они должны быть нечётными. Угарно. На вход программе подаётся два числа в двух строках - a и b. Ваша задача - вывести количество чисел из промежутка [a,b], имеющих ровно 10 угарных делителей. P.S a и b могут быть довольно большими. a,b<=1000000000