这是任务:
通过给定的 N 数,您需要从中生成 1 到 N 的序列。对于该序列中的每个素数,您需要打印出它之前的所有其他数字(以及数字本身),无论它们是否是素数示例假设 N=10 我们有序列 1、2、3、4, 5, 6, 7, 8, 9, 10 素数是 1, 2, 3, 5, 7 - 5 个素数,所以我们 prive 5 行 每行包含 1 到 PRIME_NUMBER 的所有数字结果:
1
12
123
12345
1234567
让事情变得更简单: 如果数字不是素数,则打印 0 如果数字是素数,则打印 1 最终结果:
1
11
111
11101
1110101
这是我磨损的尝试:
let input = [
'10',
];
let print = this.print || console.log;
let gets = this.gets || ((arr, index) => () => arr[index++])(input, 0);
let N = +gets();
let result;
for (let i = 1; i <= N; i++){
if(isPrime(i)){
printRow(i);
}
}
function printRow(upperLimit){
let sameLine = '';
for(let i = 1; i <= upperLimit; i++){
if(isPrime(i)){
result = 1;
}
if(!isPrime(i)){
result = 0;
}
sameLine = sameLine + result + '';
}
print(sameLine);
}
function isPrime(value) {
for(var i = 2; i < value; i++) {
if(value % i === 0) {
return false;
}
}
return true;
}
我得到:
1
111
111111
11111111101
111111111011110101
但我需要得到:
1
11
111
11101
1110101
在我的情况下,它会不断将已经循环的内容添加到每个新行的新循环中。我需要每个新行不添加上一行的内容。
任何帮助将不胜感激。希望我设法解释了我的问题..这是我在这里的第一个问题,所以不确定我是否可以理解我的贫穷呈现方式。