fun main(args: Array<String>) {
    val n = readLine()!!.toInt()
    val inputs = readLine()!!.split(" ").map { it.toInt() }

    // 何の倍数なのか判定を残さなくてはいけないのは大変では．．．
    // 効率的に残したい いや 毎回すべて判定でも行ける！

    // WA 2つ -> -1 のケースが有りうるのか？？ これはありえない WA は解消
    // TLE 8つ 2111ms で 111ms を解消できない（これならアルゴリズム的にはあっているはず，あとは kotlin の記述方法依存か）

    var ans = IntArray(n) { 0 }
    var num = 0
    val ansIndex = mutableListOf<Int>()

    for (i in n-1 downTo 0) {
        var sum = 0

        // これで少しは早くなる？
        if (i+1 <= (n+1)/2) {
            var start = i+1
            while (start <= n) {
                sum += ans[start-1]
                start += i+1

            }
        }

        if(sum % 2 != inputs[i]) {
            ans[i] += 1
            num += 1
            ansIndex.add(i+1)
        }
    }

    println(num)
    if(num != 0) {
        val out = ansIndex.joinToString(" ")
        println(out)
    }
}