Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JavaScript cycle (https://javascript.ru/forum/misc/83632-javascript-cycle.html)

Harut97 29.01.2022 09:47

JavaScript cycle
 
Всем доброго дня , я только учусь на web программиста и вот изучаю javascript, и дали задание найти счастливое число (немного грубый перевод с моего языка ) это то число чья сумма цифр на которые она делиться равна ей самой , и от 1-100 есть 2 числа , а от 1-500 есть 3 таких числа , одно из них это 6 (6/ делиться на 1,2,3 ,а 1+2+3=6 , каким методом в javascript я могу найти эти три числа используя цикл ? , где могу прочитать о них? помогите кто знает? заранее блогадарен.

voraa 29.01.2022 10:16

Условие не совсем понятно.
Цитата:

Сообщение от Harut97
сумма цифр на которые она делиться

Например, 34 делится на 2 и 17.
Какая сумма имеется в виду 2+17 (17 - не цифра) или 2+1+7?

рони 29.01.2022 10:25

поиск счастливых чисел
 
Harut97,
https://learn.javascript.ru/operators
https://learn.javascript.ru/array-methods
function findHappiness(start, end) {
            const arr = [];
            for (let i = start; i <= end; i++) {
                let sum = 0,
                    limit = i / 2;
                for (let j = 0; j <= limit; j++) {
                    if (i % j === 0) sum += j;
                }
                if (sum === i) arr.push(i)
            }
            return arr;
        }
        const find = findHappiness(1, 500);
        alert(find);

Harut97 29.01.2022 11:31

Javascript cycle
 
Рони условие было такое найти счастливые числа от 1-100 или от 1 до 500, от 1-100 есть 2 числа, одно из них это 6 (ведь цифры на которые она делиться составляют это же число , то есть 6 делиться на 1,2,3 а 1+2+3=6, исходя из этого принципа , написать цикл который найдет и выведет через document.write() эти 2 счастливых числа от 1-100, заранее спасибо друг

рони 29.01.2022 12:27

Harut97,
что не так в предложенном коде?

Harut97 29.01.2022 13:18

все отлично даже лучше чем я хотел , возможен ли вариант с того же решения только без функции а используя цикл ?просто есть такой вариант или нет ? интересно и еще раз спасибо за помошь друг

рони 29.01.2022 13:26

Harut97,
вы просите то, что у вас уже есть.

Harut97 29.01.2022 13:27

да точно сам уже запутался , спасибо за помошь)

рони 29.01.2022 13:35

Цитата:

Сообщение от Harut97
через document.write()

<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
     <script>
        function findHappiness(start, end) {
            const arr = [];
            for (let i = start; i <= end; i++) {
                let sum = 0,
                    limit = i / 2;
                for (let j = 0; j <= limit; j++) {
                    if (i % j === 0) sum += j;
                }
                if (sum == i) arr.push(i)
            }
            return arr;
        }
        let start = 1, end = 100, find = findHappiness(start, end);
        document.write(`${start} - ${end} : ${find}<br>`);
        end = 500;
        find = findHappiness(start, end);
        document.write(`${start} - ${end} : ${find}<br>`);
    </script>
</body>
</html>

Цитата:

Сообщение от Harut97
без функции

<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
     <script>
        let start = 1, end = 100;
        let arr = [];
            for (let i = start; i <= end; i++) {
                let sum = 0,
                    limit = i / 2;
                for (let j = 0; j <= limit; j++) {
                    if (i % j === 0) sum += j;
                }
                if (sum == i) arr.push(i)
            }
        document.write(`${start} - ${end} : ${arr}<br>`);
        end = 500;
        arr = [];
            for (let i = start; i <= end; i++) {
                let sum = 0,
                    limit = i / 2;
                for (let j = 0; j <= limit; j++) {
                    if (i % j === 0) sum += j;
                }
                if (sum == i) arr.push(i)
            }
        document.write(`${start} - ${end} : ${arr}<br>`);
    </script>
</body>
</html>

Harut97 29.01.2022 14:22

01
function findHappiness(start, end ) что должна делать эта функция?


Часовой пояс GMT +3, время: 22:00.