0 / 0 / 0
Регистрация: 19.03.2020
Сообщений: 9
1

Среди четырёхзначных чисел найти простые числа, у каждого из которых сумма первых 2-х цифр равна сумме последних цифр

19.03.2020, 16:35. Показов 1084. Ответов 2

Студворк — интернет-сервис помощи студентам
Путешествуя по стране чудес в поисках Шляпника, Алиса попала во дворец чисел. Чтобы из него выбраться, ей необходимо среди всех четырёхзначных чисел найти все простые числа, у каждого из которых сумма первых двух цифр равна сумме последних цифр.Помогите Алисе выбраться из дворца и продолжить поиски Шляпника. Число называется простым, если оно делится только на 1 и само на себя.
Нужно написать эту задачку на паскале(желательно с объяснениями или банальными комментариями), сразу благодарю всех кто поможет)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.03.2020, 16:35
Ответы с готовыми решениями:

Какая нужна комплектация для Учебного класса института на 10 мест для комфортной работы на лабораторных по информатике?
Посоветуйте какая нужна комплектация(наиболее частые применяемые программы,и исходя из этого...

Задание по информатике
Помогите на с++ Сгенерировать матрицу случайных чисел размера M на М и повернуть полученную матрицу...

Задание по информатике
Помогите с заданием по информатике ^_^ Напишите ответ и если не сложно про теорию немного)...

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

2
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
19.03.2020, 16:56 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
//функция определения простого числа
function isprost(n:integer):boolean;
var i:integer;
    f:boolean;
begin
if n=2 then f:=true //2 простое число
else if (n=1)or(n mod 2=0) then f:=false//1 и четные не простые
else//иначе проверяем все нечетные на делимость
 begin
  f:=true;
  i:=3;
  while (i*i<=n)and f do
  if n mod i=0 then f:=false else inc(i,2);
 end;
isprost:=f;
end;
//функция определяет равенство сумм первых и последих цифр
function isravn(n:integer):boolean;
begin
isravn:=n div 1000+n div 100 mod 10=n div 10 mod 10+n mod 10;
end;
var i:integer;
begin
for i:=1000 to 9999 do
if isprost(i)and isravn(i) then write(i,' ');
end.
0
Модератор
9655 / 4975 / 3265
Регистрация: 17.08.2012
Сообщений: 15,474
22.03.2020, 09:47 3
Функции лишние. Проверка на суму цифр значительно дешевле, чем проверка на простоту.

Достаточно быстрый вариант программы, для сдачи на проверочный сайт:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
  i, n, d: integer;
  p: boolean;
begin
  for n := 1000 to 9999 do
    if n div 1000 + n div 100 mod 10 = n div 10 mod 10 + n mod 10 then
      begin
        i := 5;
        d := 2;
        p := (n mod 2 <> 0) and (n mod 3 <> 0);
        while p and (i * i <= n) do
          begin
            p := n mod i <> 0;
            inc(i, d);
            d := d xor 6
          end;
        if p then write(n:5)
      end
end.
Используемый в программе алгоритм проверки числа на простоту описан здесь: Алгоритм, который устанавливает – является ли число простым, в основном в сообщениях с 11 по 19.

Если слишком сложно, то можно попроще.

Аналог программы от Puporev:
Pascal
1
2
3
4
5
6
7
8
9
10
11
var
  i, n: integer;
begin
  for n := 1000 to 9999 do
    if odd(n) and (n div 1000 + n div 100 mod 10 = n div 10 mod 10 + n mod 10) then //если нечётное и сумма цифр подходит
      begin //то
        i := trunc(sqrt(n)) or 1; //делим до корня числа, для удобства формируем нечётное число, не меньшее корня
        while n mod i <> 0 do dec(i, 2); //проверяем все нечётные делители
        if i = 1 then write(n:5) //если разделилось только на 1, то число простое, печатаем
      end
end.
Простейший (и далеко не оптимальный) вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
var
  i, n: integer;
begin
  for n := 1000 to 9999 do
    if n div 1000 + n div 100 mod 10 = n div 10 mod 10 + n mod 10 then
      begin
        i := 2;
        while n mod i <> 0 do inc(i);
        if i = n then write(n:5)
      end
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2020, 09:47
Помогаю со студенческими работами здесь

Задание по информатике.
Всем привет. Помогите плиз решить задачку, только программа должна быть без указателей: Ввести...

Задание по информатике 10 клас
1.Календарь задача Установите день недели даты одного года по известным дням недели другой даты...

Задание из Егэ по информатике (27)
Прорешивая егэшные задания, столкнулся вот с таким примером... Условие: Дана последовательность...

Школьное задание по информатике
Я совсем непрошаренная, поэтому буду благодарна любой помощи по заданиям :) ЗАДАНИЕ 1. Модель...


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

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

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