exit:
for (let l = 1; l < 10; l += 1) {
for (let f = 1; f < 10; f += 1) {
if (f === l) {
continue;
}
for (let i = 0; i < 10; i += 1) {
if (i === l || i === f) {
continue;
}
for (let r = 0; r < 10; r += 1) {
if (r === l || r === f || r === i) {
continue;
}
for (let k = 0; k < 10; k += 1) {
if (k === l || k === f || k === i || k === r) {
continue;
}
for (let z = 0; z < 10; z += 1) {
if (z === l || z === f || z === i || z === r || z === k) {
continue;
}
for (let a = 0; a < 10; a += 2) {
if (a === l || a === f || a === i || a === r || a === k || a === z) {
continue;
}
const lirik = l * 10000 + i * 1010 + r * 100 + k;
const fizika = f * 100000 + i * 10100 + z * 1000 + k * 10 + a;
if (lirik * 2 === fizika) {
console.log(`lirik = ${lirik}`);
console.log(`fizika = ${fizika}`);
break exit;
}
}
}
}
}
}
}
}Вариант на JS. d = {i: nums.count(i) for i in nums}function distribute(arr, val) {
let n = arr.length;
let dVal = val;
while (dVal > 0) {
let d = dVal / n;
dVal = 0;
for (let i = 0; i < arr.length; i += 1) {
if (arr[i] === 1) {
continue;
}
arr[i] += d;
if (arr[i] < 1) {
continue;
}
dVal += arr[i] - 1;
arr[i] = 1;
n -= 1;
if (n === 0) {
return undefined;
}
}
}
return arr;
} function find(sum, n, m) {
if (n === 1) {
return [`${sum}`];
}
const result = [];
const min = Math.max(m, Math.floor(sum - (n - 1) * 9));
const max = Math.floor(sum / n);
for (let i = min; i <= max; i += 1) {
find(sum - i, n - 1, i).forEach((el) => result.push(`${i}${el}`));
}
return result;
}
function findAll(sum, n) {
if (sum > n * 9 || sum < n) {
return [];
}
const result = find(sum, n, 1);
return [result.length, result[0], result.pop()];
}