Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.10.2018
Сообщений: 4

Проблема с кодом в JavaScript

23.01.2019, 14:35. Показов 800. Ответов 1
Метки c++ (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый. "Переводила" код с С++ на Javascript. И в JS код работает не до конца. Помогите, пожалуйста. Спасибо. (под JS будет оригинальный код С++) Одна из найденных мною проблем в строке 80.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE HTML>
<html>
 
<head>
<meta charset= "utf-8">
</head>
 
<body>
 
<script>
function SettupArr (n, size) {
    var arr = [];
    for (var i = 0; i < size; i++)
        arr[i] = n++;
    return arr;
}
 
function Eratosthenes  ( arr, size) {
    var _end = arr[size - 1];
 
    for (var i = 2; i <= _end ; i++) {
        if (i != 0) {
            for (var j = i;; j + i <= _end) {
                j += i;
                arr[j] = false;
            }
        }
    }
}
 
 
function ZipArr  ( arr, size) {
    var newsize = 0;
    for (var i = 0; i < size; i++) {
        if (arr[i] != 0)
            newsize++;
    }
 
 
    for (var i = 0, j = 0; i < size; i++) {
        if (arr[i] != 0)
            arr[j++] = arr[i];
    }
 
    return newsize;
}
 
function Sift  ( arr, sieve, arrsize, sievesize) {
    for (var i = 0; i < arrsize; i++)
        for (var j = 1; j < sievesize; j++)
        {
 
            if (arr[i] == sieve[j])
                break;
 
            if (arr[i] % sieve[j] == 0)
            {
                arr[i] = false;
                break;
            }
        }
 
}
 
function PrletPairs ( arr, size) {
    for (var i = 0 , j = 1 ; i < size-2 ; i++)
        if (arr[i + 1] - arr[i] == 2)
            alert("Pair"+ (j++) +" : " + arr[i] + " - " + arr[i + 1]);
}
 
var n = prompt("enter number N >");
var m = prompt("enter number M >");
 
var arrSize = m - n;
 
//инициализация массива диапазлном чисел от n до m
var arr = SettupArr(n, arrSize);
 
//инициализация вспомогательно массива числами ОТ 1 ДО корня от м
size sieveSize = Math.sqrt(m) + 1;
var sieve = SettupArr(0, sieveSize);
 
 
//находим все простые числа в спомогательном массиве , остальные заменяем на
Eratosthenes(sieve, sieveSize);
 
//удаляем все непростые числа (нули)
var sieveSize = ZipArr(sieve, sieveSize);
 
 
//поиск непростых чисел в заданом диапазоне , делением каждого на просты числа из вспомогательного массива
Sift(arr, sieve, arrSize, sieveSize);
var arrSize = ZipArr(arr, arrSize);
 
 
PrletPairs(arr, arrSize);
 
 
 
 
</script>
</body>
</html>


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <math.h>
 
using namespace std;
 
int * SettupArr(int n, size_t size)
{
    int * arr = new int[size];
    for (int i = 0; i < size; i++)
        arr[i] = n++;
    return arr;
}
 
 
 
void Eratosthenes(int *arr, size_t size) 
{
    int _end = arr[size - 1];
 
    for (int i = 2; i <= _end ; i++) 
        if (i != 0) 
            for (int j = i; j + i <= _end;)
            {
                j += i;
                arr[j] = false;
            }
 
    
 
}
 
 
size_t ZipArr(int *arr, size_t size)
{
    size_t newsize = 0;
    for (int i = 0; i < size; i++) 
        if (arr[i] != 0)
            newsize++;
 
    
        for (int i = 0, j = 0; i < size; i++)
            if (arr[i] != 0)
                arr[j++] = arr[i];
        return newsize;
}
 
void Sift(int *arr, int *sieve, int arrsize, int sievesize) 
{
    for (int i = 0; i < arrsize; i++)
        for (int j = 1; j < sievesize; j++)
        {
 
            if (arr[i] == sieve[j])
                break;
 
            if (arr[i] % sieve[j] == 0)
            {
                arr[i] = false;
                break;
            }
        }
 
}
 
void PrintPairs(int * arr, size_t size) 
{
    for (int i = 0 , j = 1 ; i < size-2 ; i++)
        if (arr[i + 1] - arr[i] == 2) 
            cout << "Pair"<<j++<<" : " << arr[i] << " - " << arr[i + 1] << endl;
}
 
 
 
int main()
{
    int n, m;
    cout << "enter number N >";
    cin >> n;
    cout << "enter number M >";
    cin >> m;
    int arrSize = m - n;
    
    //инициализация массива диапазлном чисел от n до m
    int * arr = SettupArr(n, arrSize);
 
    //инициализация вспомогательно массива числами ОТ 1 ДО корня от м
    size_t sieveSize = sqrt(m) + 1;
    int *sieve = SettupArr(0, sieveSize);
    
 
    //находим все простые числа в спомогательном массиве , остальные заменяем на ноль (Решеето Эратосфена)
    Eratosthenes(sieve, sieveSize);
 
    //удаляем все непростые числа (нули)
    sieveSize = ZipArr(sieve, sieveSize);
    
 
    //поиск непростых чисел в заданом диапазоне , делением каждого на просты числа из вспомогательного массива
    Sift(arr, sieve, arrSize, sieveSize);
    arrSize = ZipArr(arr, arrSize);
 
    
    PrintPairs(arr, arrSize);
 
    
 
    return 0;
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.01.2019, 14:35
Ответы с готовыми решениями:

JavaScript разобраться с кодом
Помогите разобраться с кодом, пожалуйста. var g_frame, g_cnv, g_gridlyr, g_xlyr, g_ylyr, g_termlyr, ...

Помогите разобраться с кодом на JavaScript
Доброго времени суток! Недавно встала необходимость понять, как работает блог sosblog.fr. И встал вопрос про JavaScript функцию. Сам я...

Взаимодействие Session с кодом JavaScript
Всем доброго времени суток. Есть часть кода написанного в среде Visual Web Developer файл MasterPage.master &lt;%@ Register...

1
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
24.01.2019, 20:11
Цитата Сообщение от lenokin Посмотреть сообщение
Одна из найденных мною проблем в строке 80.
в коде С++ в этом месте написано size_t, это специальный тип данных, беззнаковое целое. В JS такого просто нет, поставьте вместо него var как и везде у вас.

если это про решето Эратосфена
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const sieveEratosthene = num => {
    let n = 2;
    let arr = new Array(num + 1).fill(0).map((el, i) => i ? i : 1);
    const zipArr = () => {
        let buff = [];
        for(let step = arr[n], res = step * step; res < num + 1; res += step)
            buff.push(res);
        if(!buff.length)
            return false;
        buff.forEach(el => arr[el] = 0);
        while(!arr[++n]);
        return true;
    }
    while(zipArr())
        zipArr();
    return arr.filter(el => el).slice(2);
}
console.log(sieveEratosthene(50));//(15)*[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.01.2019, 20:11
Помогаю со студенческими работами здесь

как разобраться с кодом на javascript
var mass=; while(true) { var value = +prompt('Vvedite chislo',''); if(!value) break; mass.push(value); } Почему...

Помогите с кодом JavaScript для доступа к Access.
Кто-нибудь...может занимался когда-нить сам или видел полезные урлы!! Помогите с кодом JavaScript для доступа к Access... хотябы строки...

Как на Javascript вывести символ с заданным числовым кодом?
Как на Javascript вывести символ с заданным числовым кодом? (document.write(&quot;???&quot;);)

Проблема с кодом
# Игра блэкджек print (&quot;Игра запущена!&quot;) import random print (&quot;Желаете взять карту?&quot;) inp...

Проблема с кодом
Когда в начале я пишу выключить выполняется сразу два условия и программа продолжает работать,а если пишу включить тоже выполняется два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru