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

Заполнить целочисленный массив из 15 элементов первыми простыми числами

17.10.2013, 18:08. Показов 1616. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
заполнить целочисленный массив из 15 элементов первыми простыми числами.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2013, 18:08
Ответы с готовыми решениями:

Заполнить массив n первыми простыми числами (2, 3, 5, 7,.) и вывести его
12. С клавиатуры вводится число n. Заполнить массив n первыми простыми числами (2, 3, 5, 7,...) и...

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

Заполнить целочисленный массив из 15 элементов первыми простыми числами(делятся только на 1 и на само себя)
Заполнить целочисленный массив из 15 элементов первыми простыми числами(делятся только на 1 и на...

Заполнить массив тридцатью первыми простыми числами
Заполнить массив тридцатью первыми простыми числами (простым называется натуральное число большее...

11
907 / 755 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
17.10.2013, 18:53 2
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  A: array[1..15] of integer;
  N, i, k: integer;
  f: boolean;
  
begin
  writeln('Первые 15 протых чисел:');
  writeln;
  a[1] := 2;
  k := 1;
  N := 3;
  repeat
    i := 3;
    f := true;
    while i <= round(sqrt(N)) do 
      if N mod i <> 0 then inc(i, 2)
      else begin f := false; break end;
    if f then begin inc(k); a[k] := N end;
    inc(N, 2)
  until k = 15;
  for k := 1 to 15 do write(' ', a[k])
end.
1
Супер-модератор
6170 / 2912 / 1300
Регистрация: 04.03.2013
Сообщений: 5,774
Записей в блоге: 1
17.10.2013, 19:15 3
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Pascal
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
const
  n = 15;
var a : array[1..n] of word;
  i, m, k : word;
 
function isPrime(num : word) : boolean;
var j : word;
begin
  isPrime := true;
  for j := 2 to (num - 1) do
    if num mod j = 0 then 
    begin
      isPrime := false;
      break
    end
end;
 
begin
  k := 0;
  m := 2;
  for i := 1 to 15 do
  begin
    while k < i do
    begin
      if isPrime(m) then
      begin
        a[i] := m;
        inc(m);
        write(a[i]:4);
        inc(k)
      end
      else
      begin
        inc(m);
        continue
      end
    end    
  end
end.
1
5 / 5 / 2
Регистрация: 17.10.2013
Сообщений: 52
17.10.2013, 19:34  [ТС] 4
Спасибо, ребят за помощь!

Добавлено через 13 минут
а можно как-то по проще сделать? Здесь много чего мы еще не проходили, препод докапается(.
0
Супер-модератор
6170 / 2912 / 1300
Регистрация: 04.03.2013
Сообщений: 5,774
Записей в блоге: 1
17.10.2013, 19:56 5
Цитата Сообщение от rastamanъ Посмотреть сообщение
а можно как-то по проще сделать? Здесь много чего мы еще не проходили, препод докапается(.
Ну не знаю даже...

Добавлено через 1 минуту
Вообще программы моя и erl27 примерно одинаковы по сложности, у него возможно более качественный алгоритм, у меня использование функции. Функции проходят поздно, так что будем считать, что у меня "сложнее" сделано.
0
907 / 755 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
17.10.2013, 19:57 6
Цитата Сообщение от rastamanъ Посмотреть сообщение
Здесь много чего мы еще не проходили
А что вы не проходили, или на какой стадии изучения вы сейчас находитесь? Искать простые числа без циклов нереально.
0
5 / 5 / 2
Регистрация: 17.10.2013
Сообщений: 52
17.10.2013, 20:00  [ТС] 7
Вообще, мы сейчас работаем над темой "Одномерные массивы".
0
Супер-модератор
6170 / 2912 / 1300
Регистрация: 04.03.2013
Сообщений: 5,774
Записей в блоге: 1
17.10.2013, 20:03 8
Ну вот значит пойдет тебе программа erl27

Добавлено через 1 минуту
Массивы без циклов также нереально, так что там всё вы проходили, не парься=)
0
5 / 5 / 2
Регистрация: 17.10.2013
Сообщений: 52
17.10.2013, 20:08  [ТС] 9
Спасибо вам! завтра отпишусь еще.
0
Супер-модератор
6170 / 2912 / 1300
Регистрация: 04.03.2013
Сообщений: 5,774
Записей в блоге: 1
17.10.2013, 20:10 10
rastamanъ, главное осмысли код программы, когда пойдешь сдавать...
0
5 / 5 / 2
Регистрация: 17.10.2013
Сообщений: 52
17.10.2013, 20:13  [ТС] 11
обязательно

Добавлено через 2 минуты
это обязательно, потому что препод вопросы задает по коду..
0
907 / 755 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
17.10.2013, 20:23 12
Вот переписал с комментариями:
Pascal
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
var
  A: array[1..15] of integer;
  N, i, k: integer;
  f: boolean; {f = true - число простое
               f = false число составное}
  
begin
  writeln('Первые 15 протых чисел:');
  writeln;
  a[1] := 2; //минимальное простое число
  k := 1;
  N := 3; //минимальное нечетное простое число
  repeat
    i := 3; //минимальный нечетный делитель
    f := true; //сначала считаем число N простым
    while i <= round(sqrt(N)) do 
    {ели N не делится на i, то увеличиваем делитель i на 2: }
      if N mod i <> 0 then i := i + 2
      else //иначе
      begin 
        f := false; //число составное
        break //и сразу выходим из цикла
      end;
    if f then //если число простое
    begin 
      inc(k); //то номер чисела увеличиваем на 1
      a[k] := N //присваиваем k-му номеру число N
    end;
    N := N + 2  //увеличиваем число на 2
  until k = 15; //и так до тех пор пока номер числа = 15
 { Выводим найденные простые числа: } 
  for k := 1 to 15 do write(' ', a[k])
end.
0
17.10.2013, 20:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2013, 20:23
Помогаю со студенческими работами здесь

Заполнить массив тридцатью первыми простыми числами
Заполнить массив тридцатью первыми простыми числами (простым называется натуральное число, большее...

Заполнить массив десятью первыми простыми числами
Заполнить массив десятью первыми простыми числами

Заполнить массив первыми 100 простыми числами
Объявите одномерный целочисленный массив, в котором не более 100 элементов. Выполните генерацию...

Заполнить массив первыми ста простыми числами, и вывести массив на экран
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию...


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

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

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