Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Альберт911
1

Найти сумму элементов массива, которые являются простыми числами и принадлежат сегменту [5,1000]

19.06.2014, 14:22. Показов 1510. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
дан одномерный целочисленный массив A состоящий из N элементов, N - заданное натуральное число. Найти сумму элементов массива А, которые являются простыми числами и принадлежат сегменту [5,1000].
Пожалуйста помогите!)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2014, 14:22
Ответы с готовыми решениями:

Найти сумму элементов массива А, которые являются простыми числами и принадлежат сегменту [5,1000]
Дан одномерный целочисленный массив А,состоящий из N элементов, N - заданное натуральное число....

Найти самую короткую подпоследовательность,массива А,состоящую из элементов, которые являются простыми числами
Найти самую короткую подпоследовательность, массива А, состоящую из элементов, которые являются...

Подсчитать сумму тех элементов массива, модули которых являются простыми числами
Дан целочисленный массив размера n x m с элементами из диапазона [0,20). Подсчитать сумму тех...

Подсчитать сумму элементов одномерного массива, модули которых являются простыми числами
25. Дан целочисленный массив размера n x m с элементами из диапазона [0,20). Подсчитайте сумму тех...

2
908 / 756 / 833
Регистрация: 06.09.2013
Сообщений: 1,561
19.06.2014, 14:42 2
Лучший ответ Сообщение было отмечено как решение

Решение

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
function IsPrime(j: integer): boolean;
var
  k: integer;
begin
  if j < 2 then result := false
  else
  if j = 2 then result := true
  else
  if odd(j + 1) then result := false
  else 
  begin
    k := 3;
    result := true;
    while k * k <= j do 
      if j mod k <> 0 then inc(k, 2)
      else begin result := false; break end
  end
end;
 
var
  A: array[1..100] of integer;
  i, N: byte;
  S: integer;
  
begin
  write('Введите количество элементов массива: ');
  readln(N);
  S := 0;
  for i := 1 to N do begin
    a[i] := random(20000); //случайные целые числа 
    write(' ', a[i]);
    if IsPrime(a[i]) and (a[i] > 4) and (a[i] < 1001) then S := S + a[i]
  end;
  writeln;
  writeln('Результат: ', S)
end.
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
19.06.2014, 15:15 3
Годный код!

Цитата Сообщение от erl27 Посмотреть сообщение
Pascal
1
if odd(j + 1) then result := false
зачем? на мой взгляд
Pascal
1
if not odd(j) then...
и проще и понятней и эффективней.

а ещё, имхо, удобно сразу выходить из функции, если условие простоты нарушено.
ну, типа:
Pascal
1
2
3
  result := false;
  if j < 2 then Exit;
....

p.s. но вообще, мне мой вариант функци всё равно больше нравится!
0
19.06.2014, 15:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2014, 15:15
Помогаю со студенческими работами здесь

Матрицы. Найти сумму и количество элементов каждого столбца, которые являются простыми числами
Найти сумму и количество элементов с заданным условием (хранить эти значения в массивах): элементы...

Дан двумерный массив. Вывести позиции элементов, которые являются простыми числами.
Я студентка-заочница и нужна помощь. Решите задачку: Дан двухмерный массив T. Вывести позиции...

Среди всех делителей числа N найти и вывести те, которые являются простыми числами
1)задано натуральное число N. Среди всех делителей числа N найти и вывести те,которые являются...

Вывести в строку только те элементы числовой последовательности, которые являются простыми числами
Вывести в строку, через пробел в прямом порядке только те элементы числовой последовательности,...


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

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