[英]array multidimensional primes check
我搜索過,而且我什么都沒發現。 作為初學者和學習JavaScript的學生,我有一個問題。 我知道如何檢查數字是否是素數。 這是我的問題:
numbers([
[5, 7, 10],
[8, 2, 3],
[44, 50, 22]
])
expected output:
[
['#', '#', 10],
[8, '#', '#'],
[44, 50, 22]
]
我需要的是:如果多維數組中有素數,我需要將其更改為#
,如果沒有,則沒有任何變化。 此任務需要在功能上沒有內置如.indexOf
, .include
, .findIndex
, .reduce
, .map
, .filter
,並添加任何新的參數,或正則表達式。 這就是我到目前為止所得到的:
function multidimensionalPrimesChecker(numbers)
{
for (var i = 0 ; i < numbers.length ; i++)
{
for (var j = 0 ; j < numbers[i].length ; j++)
{
if (numbers[i][j] % i === 0)
{
return false;
}
}
}
}
我不知道如何解決這個問題。 請幫幫我。 謝謝你的善意
首先,您需要一個函數來檢查數字是否為素數,因為您當前的校驗numbers[i][j] % i === 0
僅檢查numbers[i][j]
是否可被i
整除。 下一個方法將做到這一點:
function isPrime(num)
{
for(let i = 2, s = Math.sqrt(num); i <= s; i++)
if(num % i === 0) return false;
return num !== 1 && num !== 0;
}
現在,使用您的代碼,您可以檢測到這種情況,並在條件成立時替換為#
。
const input = [ [5, 7, 10], [8, 2, 3], [44, 50, 22] ]; function isPrime(num) { for(let i = 2, s = Math.sqrt(num); i <= s; i++) if(num % i === 0) return false; return num !== 1 && num !== 0; } function multidimensionalPrimesChecker(numbers) { for (var i = 0; i < numbers.length; i++) { for (var j = 0; j < numbers[i].length; j++) { if (isPrime(numbers[i][j])) numbers[i][j] = "#"; } } return numbers; } let res = multidimensionalPrimesChecker(input); console.log(JSON.stringify(res));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.