2 / 2 / 1
Регистрация: 04.01.2013
Сообщений: 48
1

Написать программу, которая выводит на экран первые N простых чисел

19.02.2013, 20:03. Показов 11877. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая выводит на экран первые N простых чисел. Помогите пожалуйста, 1 пара по этому языку была. идею понимаю, написать не знаю как(((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2013, 20:03
Ответы с готовыми решениями:

Написать программу с использованием динамического массива, которая выводит на экран первые N простых чисел
Написать программу с использованием динамического массива, которая выводит на экран первые N...

Написать программу, которая выводит на экран кубы первых 10-ти простых чисел
написать программу, кот выводит на экран кубы первых 10ти простых чисел.. надо что она там как-то...

Написать программу, которая выводит на экран первые N слов предложения
записать в память предложение. написать программу, которая выводит на экран первые N слов...

написать программу, которая выводит на экран первые четыре степени числа П(пи)
написать программу, которая выводит на экран первые четыре степени числа П(пи) пож-та сделайте

9
14 / 14 / 3
Регистрация: 14.02.2010
Сообщений: 293
19.02.2013, 21:03 2
что значит Н?
количество чисел что будет выведено?
или число до каторого надо зделать ряд простих чисел?
0
2 / 2 / 1
Регистрация: 04.01.2013
Сообщений: 48
19.02.2013, 21:23  [ТС] 3
Я сам не понял, но думаю что Н чисел

Добавлено через 1 минуту
Ряд как я понял будет до 9 так как 10 это уже составное (наверное)
0
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 28
20.02.2013, 03:14 4
Javascript
1
2
3
4
5
var i = 0;
while (i < 9) {
  alert(i);
  i++;
}
0
Эксперт JSЭксперт HTML/CSS
2435 / 1114 / 312
Регистрация: 23.06.2011
Сообщений: 3,525
20.02.2013, 08:45 5
KChernenko, Простое число, это то, которое делится только на себя и единицу типа 1, 2, 3, 5, 7, 11, 13, 17, 19 и т. д. Если есть хотя бы один делитель, отличный от единицы и самого числа, то это число составное.

P.S.
Наверно пока не будет корректного задания, ответа не будет.
Подобные темы уже не раз были, студиозы каждый год новые появляются, но со старыми вопросами.
1
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
20.02.2013, 11:25 6
Лучший ответ Сообщение было отмечено как решение

Решение

Да что тут непонятного. Нужно вывести N простых чисел, где N - количество этих самых чисел.
Если самому влом кумекать, ладно, привожу мою функцию, которая находит нужное количество простых чисел и возвращает массив этих чисел:
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
function getSimpleNumbers(numbers) {
    if (numbers < 1 || typeof numbers != 'number') {
        return null;
    }
    numbers = Math.floor(numbers);
 
    var sn = 2;
    var simples = [1];
    var isItSimple = true;
 
    while (simples.length < numbers) {
        for (var i=2; i<sn; i++) {
            if (sn % i == 0) {
                isItSimple = false;
                break;
            }
        }
            
        if (isItSimple == true) {
            simples.push(sn);
        }
        
        isItSimple = true;
        sn++;
    }
    return simples;
}
Если нужно тупо вывести на экран, скажем, 40 первых простых чисел, можнонаписать следующее:
Javascript
1
document.write(getSimpleNumbers(40));
3
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
20.02.2013, 16:06 7
Примерно то же самое, что в предыдущем сообщении.
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getPrimes(count) {
    count = ~~count;
 
    var nums = [], n, i, L, p;
 
    NUMBER:
    for (n = 1; (L = nums.length) < count; n++) {
        for (i = 0; i < L; i++) {
            p = nums[i];
 
            if (p > 1 && 0 == n % p)
                continue NUMBER;
        };
 
        nums.push(n);
    };
 
    return nums;
};
2
1 / 1 / 0
Регистрация: 13.01.2012
Сообщений: 28
21.02.2013, 00:37 8
Цитата Сообщение от newJS Посмотреть сообщение
KChernenko, Простое число, это то, которое делится только на себя и единицу типа 1, 2, 3, 5, 7, 11, 13, 17, 19 и т. д. Если есть хотя бы один делитель, отличный от единицы и самого числа, то это число составное.

P.S.
Наверно пока не будет корректного задания, ответа не будет.
Подобные темы уже не раз были, студиозы каждый год новые появляются, но со старыми вопросами.
Теперь понял. Можно тогда сделать немного по-другому (проще), чем предложено выше.

Javascript
1
2
3
4
5
6
7
8
9
10
var lgth = prompt ('Введите N: ', '');
mark:
for(var i=1; i<lgth; i++) {
 
  for(var j=2; j<i; j++) {
    if ( i % j == 0) continue mark;
  }
   
  alert(i);
}
0
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
21.02.2013, 01:56 9
Лучший ответ Сообщение было отмечено как решение

Решение

Примечание: ряд простых чисел начинается с 2.

Раз уж вы взялись изобретать велосипед, то добавлю еще три оптимизации:
1. Тестируемое число можно увеличивать на двойку, так как четные числа (кроме 2) - 100% составные,
2. Перебирать в качестве делителей можно лишь уже найденные до этого простые числа (Vovan-VE это учел),
3. Не нужно проверять все делители, а только меньшие или равные квадратному корню проверяемого числа.

Итого получаем:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getPrimes(count) {
    
    if (count < 1) return [];
    
    var primes = [ 2 ]; // 2 - единственное простое четное число (исключение)
    
    for (var n = 3; primes.length < count; n += 2) { // инкремент на 2
        var p = true, max_m = Math.sqrt(n); // не надо проверять делители больше sqrt(n)
        for (var i = 0; (m = primes[i++]) <= max_m; ) // возможные делители - только меньшие простые числа
            if (!(n % m)) { p = false; break; }
        p && primes.push(n);
    }
    
    return primes;
}
3
2 / 2 / 1
Регистрация: 04.01.2013
Сообщений: 48
21.02.2013, 21:11  [ТС] 10
Ребят всем огромное спасибо, я при помощи преподавателя тоже сделал))
0
21.02.2013, 21:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2013, 21:11
Помогаю со студенческими работами здесь

Написать программу, которая выводит на экран первые четыре степени числа Пи
Написать программу, которая выводит на экран первые четыре степени числа Пи. Добавлено через 15...

написать программу, которая выводит на экран первые четыре степени числа пи
написать программу, которая выводит на экран первые четыре степени числа ПИ

Написать программу, которая выводит на экран первые три степени числа πи
Задача : Составить линейную программу для решения задачи. Написать программу, которая выводит на...

Напишите программу, которая вводит натуральное число N и выводит на экран первые N чисел Фибоначчи
Ряд чисел Фибоначчи задается следующим образом: первые два числа равны 1(F1=F2=1), а каждое...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru