The Lockers Problem V1

by Graham Walters

HTML

<span id="total"></span>

<ul id="list"></ul>

CSS

body {
    font-family: "Inconsolata", "Monaco", "Andale Mono", "Lucida Console", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace;
    line-height: 17px;
    font-size: 12px;
    color: #bf616a;
}

ul {
    list-style: none;
    padding: 0;
}

JavaScript

var list = document.getElementById('list');
var total = document.getElementById('total');

console.time('v1');
var lockers = [];
lockers.length = 1000;

for (var student=0; student < lockers.length; student++) {
    for (var d=student; d<lockers.length; d+=(student + 1)) {
        lockers[d] = !lockers[d];
    }
}

// List which lockers are still open
var openLockers = [];
for (var l=0; l<lockers.length; l++) {
    if (lockers[l]) {
        openLockers.push(l);
    }
}
console.timeEnd('v1');

// List which lockers are still open
for (var l=0; l<openLockers.length; l++) {
    var li = document.createElement('li');
    li.innerHTML = 'Locker '+openLockers[l]+' is open';
    list.appendChild(li);
}

total.innerHTML = totalOpen + ' Lockers are open';