Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
1 / 1 / 2
Регистрация: 07.07.2014
Сообщений: 39

Вывести в обратном порядке только простые элементы целочисленной последовательности

23.07.2014, 17:32. Показов 4149. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочисленная последовательность. Вывести в обратном порядке только простые ее элементы.

Просто́е число́ — это натуральное число, имеющее ровно два различных натуральных делителя: единицу и само себя. Все остальные числа, кроме единицы, называются составными. Таким образом, все натуральные числа больше единицы разбиваются на простые и составные. Изучением свойств простых чисел занимается теория чисел. В теории колец простым числам соответствуют неприводимые элементы.
Входные данные:

Во входном потоке в первой строке записано единственное натуральное число N - количество элементов числовой последовательности (N <= 1000);
Во второй строке, через пробел, перечислены N целых чисел, значения которых по модулю не превышают 32000.
Выходные данные:

В выходной поток вывести целые числа, перечисляя их через пробел.
Пример входного файла:

5
-7 12 3 28965 1

Пример выходного файла:

3


подскажите, что неправильно
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var x,a,i,n,k,j:longint;
begin 
read(n);
for i:=1 to n do begin  read(a);
end;
for i:=n downto 1 do begin
k:=0;
for j:=2 to trunc(sqrt(a)) do 
if a mod j=0 then inc(k);;
if (a<>1) and(k=0) then write(a,' ');
end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2014, 17:32
Ответы с готовыми решениями:

Вывести все элементы последовательности в обратном порядке
Дана целочисленная последовательность. Вывести все ее элементы в обратном порядке. Входные данные: Во входном потоке в первой строке...

Дана целочисленная последовательность. Вывести в обратном порядке только четные ее элементы
Дана целочисленная последовательность. Вывести в обратном порядке только четные ее элементы. Входные данные: Во входном потоке в первой...

Вывести на экран символы данной последовательности в обратном порядке
Всем доброго времени суток! Прошу помочь с элементарной задачкой :( Дана последовательность 10 чисел a1, …, a10. Вывести на экран...

20
1 / 1 / 0
Регистрация: 20.07.2014
Сообщений: 7
23.07.2014, 17:59
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var x,a,i,n,k,j:longint;
begin 
read(n);
for i:=1 to n do begin  read(a);
 
k:=0;
for j:=2 to trunc(sqrt(a))-1 do 
if a mod j=0 then inc(k);
if (a<>1) and(k=0) then write(a,' ');
 
end;
end;
код не проверял, но вроде как должно быть так...поставьте "спасибо" пожалуйста)
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.07.2014, 18:28
Цитата Сообщение от shpak_1804 Посмотреть сообщение
поставьте "спасибо" пожалуйста)
Клянчить спасибки запрещено Правилами. Сначала научись правильно читать задания и писать программы
Цитата Сообщение от alisa208 Посмотреть сообщение
Вывести в обратном порядке
2
72 / 72 / 64
Регистрация: 30.04.2014
Сообщений: 214
23.07.2014, 18:40
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var x,i,n,k,j:integer;
a:array[1..1000] of integer;
begin
read(n);
for i:=1 to n do begin  read(a[i]);
end;
for i:=n downto 1 do begin
k:=0;
for j:=2 to trunc(sqrt(a[i])) do
if a[i] mod j=0 then inc(k);;
if (a[i]<>1) and (k=0) then write(a[i],' ');
end;
end.
1
1 / 1 / 0
Регистрация: 20.07.2014
Сообщений: 7
23.07.2014, 18:46
точно...прошу прощения..не дочитал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var x,a,i,n,k,j:longint;
begin 
read(n);
for i:=n to 1 do begin  
read(a);
 
k:=0;
for j:=2 to trunc(sqrt(a))-1 do 
if a mod j=0 then inc(k);
if (a<>1) and(k=0) then write(a,' ');
 
end;
end;
end;
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.07.2014, 18:51
Уж лучше бы не дочитал...
1
1 / 1 / 2
Регистрация: 07.07.2014
Сообщений: 39
23.07.2014, 19:15  [ТС]
подскажите, пожалуйста, что нужно исправить
(5
-7 12 3 28965 1
3
Ошибка времени выполнения: System.OverflowException: Значение было недопустимо малым или недопустимо большим для Int32.)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
var i,n,k,j:longint;
a:array[1..1000] of longint;
begin
read(n);
for i:=1 to n do begin  read(a[i]);
end;
for i:=n downto 1 do begin
k:=0;
for j:=2 to trunc(sqrt(a[i])) do
if a[i] mod j=0 then inc(k);;
if (a[i]<>1) and (k=0) then write(a[i],' ');
end;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.07.2014, 20:23
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i,n,k,j,p:integer;
a:array[1..1000] of integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
p:=0;
for i:=n downto 1 do
if a[i]>1 then//числа меньше 2 не простые
 begin
  k:=0;
  j:=2;
  while (j<=trunc(sqrt(a[i])))and(k=0) do//ошибка была из-за корней из отрицательных чисел
  if a[i] mod j=0 then k:=1
  else inc(j);
  if k=0 then
   begin
    write(a[i],' ');
    p:=1
   end;
 end;
if p=0 then write('Нет простых чисел')
end.
1
72 / 72 / 64
Регистрация: 30.04.2014
Сообщений: 214
23.07.2014, 20:48
Виноват. Не досмотрел, что в условии сказано "по модулю не превышают 32000"
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
02.05.2015, 13:48
Цитата Сообщение от Puporev Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i,n,k,j,p:integer;
a:array[1..1000] of integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
p:=0;
for i:=n downto 1 do
if a[i]>1 then//числа меньше 2 не простые
 begin
  k:=0;
  j:=2;
  while (j<=trunc(sqrt(a[i])))and(k=0) do//ошибка была из-за корней из отрицательных чисел
  if a[i] mod j=0 then k:=1
  else inc(j);
  if k=0 then
   begin
    write(a[i],' ');
    p:=1
   end;
 end;
if p=0 then write('Нет простых чисел')
end.
Сообщения компилятора:
Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling Main.pas
Linking Main
22 lines compiled, 0.0 sec
Подскажите где ошибка?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
02.05.2015, 13:56
Цитата Сообщение от Николайчик Посмотреть сообщение
Подскажите где ошибка?
У меня ошибок нет, запускал в Free Pascal Compiler version 2.6.4
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
02.05.2015, 14:00
Цитата Сообщение от Puporev Посмотреть сообщение
У меня ошибок нет, запускал в Free Pascal Compiler version 2.6.4
В выводе 22 строке write(a[i],' ')?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
02.05.2015, 14:03
Николайчик, с чего ты решил, что там ошибка?
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
02.05.2015, 16:29
Цитата Сообщение от volvo Посмотреть сообщение
Николайчик, с чего ты решил, что там ошибка?
Показует минус при откладке.

Добавлено через 2 часа 24 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
У меня ошибок нет, запускал в Free Pascal Compiler version 2.6.4
Скорее всего у меня ошибка в выводе последнем
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
02.05.2015, 17:09
Ты бы результат работы показал, чтобы можно было видеть, чего ты там вводишь, и что возвращает программа. А так - "глухие телефоны" получаются...
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
03.05.2015, 11:40
Цитата Сообщение от volvo Посмотреть сообщение
Ты бы результат работы показал, чтобы можно было видеть, чего ты там вводишь, и что возвращает программа. А так - "глухие телефоны" получаются...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i,n,k,j,p:integer;
a:array[1..1000] of integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
p:=0;
for i:=n downto 1 do
if a[i]>1 then
 begin
  k:=0;
  j:=2;
  while (j<=trunc(sqrt(a[i])))and(k=0) do
  if a[i] mod j=0 then k:=1
  else inc(j);
  if k=0 then
   begin
    write(a[i],' ');
    p:=1
   end;
 end;
if p=0 then write('a[i],' ')
end.
Вот что выводит:
Сообщения компилятора:
Free Pascal Compiler version 2.6.2-8 [2014/01/22] for x86_64
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling Main.pas
Linking Main
22 lines compiled, 0.0 sec

Добавлено через 17 часов 3 минуты
Цитата Сообщение от volvo Посмотреть сообщение
Ты бы результат работы показал, чтобы можно было видеть, чего ты там вводишь, и что возвращает программа. А так - "глухие телефоны" получаются...
Я не знаю что в конечном выводе писать.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
03.05.2015, 11:42
Цитата Сообщение от Николайчик Посмотреть сообщение
Вот что выводит:
Это результаты компиляции. Где результаты запуска?
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
03.05.2015, 13:24
Цитата Сообщение от volvo Посмотреть сообщение
Это результаты компиляции. Где результаты запуска?
Файл Код ошибки Время, ms Память, kB Результат
pas (305) 0 1.000 204 -
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,902
Записей в блоге: 12
03.05.2015, 13:36
Блин. Вот я же тебя не просто так просил привести скриншот,
Цитата Сообщение от volvo Посмотреть сообщение
чтобы можно было видеть, чего ты там вводишь, и что возвращает программа
. Что из вышеприведенного набора символов ввел ты, а что тебе вернулось? Я, например, ничего не понял. Ты должен был ввести сначала количество чисел, которые надо обработать, а потом - еще столько же целых чисел. Где это все?
0
0 / 0 / 1
Регистрация: 23.11.2014
Сообщений: 136
03.05.2015, 13:57
Цитата Сообщение от volvo Посмотреть сообщение
Блин. Вот я же тебя не просто так просил привести скриншот, . Что из вышеприведенного набора символов ввел ты, а что тебе вернулось? Я, например, ничего не понял. Ты должен был ввести сначала количество чисел, которые надо обработать, а потом - еще столько же целых чисел. Где это все?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var i,n,k,j,p:integer;
a:array[1..1000] of integer;
begin
readln(n);
for i:=1 to n do readln(a[i]);
p:=0;
for i:=n downto 1 do
if a[i]>1 then
 begin
  k:=0;
  j:=2;
  while (j<=trunc(sqrt(a[i])))and(k=0) do
  if a[i] mod j=0 then k:=1
  else inc(j);
  if k=0 then
   begin
    write(a[i],' ');
    p:=1
   end;
 end;
if p=0 then write('a[i],' ')
end.
Вот мой код. Где там ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2015, 13:57
Помогаю со студенческими работами здесь

Написать в обратном порядке все элементы последовательности между максимальным и минимальным
Уже 3 день пишу задачки :umnik: Голова уже совсем забита, помогите с парочкой оставшихся, они у меня почему - то не работают...

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

Вывести элементы массива в обратном порядке
1)Разворот массива Дан массив из N чисел в интервале от -32000 до 32000.(1&lt;=N&lt;=10000).Вывести его элементы в обратном порядке. Вывести...

Вывести элементы массива в обратном порядке.
Дан целочисленный массив размером N. Вывести его элементы в обратном порядке. Вычислить среднее арифметическое положительных элементов...

Вывести элементы массива в обратном порядке
Здравствуйте. помогите пожалуйста с задачей на одномерный массив: Дан целочисленный массив размером n. Вывести элементы массива в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru