Здравствуйте, решаю контестики на яндексе, код работает у меня в компиляторе и вроде даже правильно, но на самом сайте ошибка: 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