Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
1

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

17.10.2017, 14:50. Просмотров 281. Ответов 17
Метки нет (Все метки)

Ее условия
Найти все простые числа, не превосходящие натуральное число*N,*двоичная запись которых представляет собой палиндром.*N*задано, и не должно превосходить 1000. Палиндром – это число, которое одинаково читается слева направо и справа налево.

Напишите программу , спасите жизнь (
Пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2017, 14:50
Ответы с готовыми решениями:

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

Написать программу которая выводит все простые числа не превосходящие заранее заданного числа N
СРОЧНО!!!! помогите плиз Написать программу которая выводит все простые числа...

Перебором делителей найти простые числа в указанном диапазоне, и вывести все простые числа в поле Memo
Мне нужна программка на Delphi, которая простым перебором делителей находит...

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

Вывести все простые натуральные числа, не превышающие заданное число N
вывести все простые натуральные числа, не превышающие заданное число N и...

17
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
17.10.2017, 16:07 2
Delphi
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
40
41
42
43
44
45
46
47
48
49
50
{$R *.dfm}
function prost(n:integer):boolean;
var i:integer;
begin
i:=2;
while (i*i<=n)and(n mod i<>0) do inc(i);
result:=i*i>i;
end;
function dectobin(n:integer):string;
var s:string;
begin
s:='';
while n>0 do
 begin
  s:=inttostr(n mod 2)+s;
  n:=n div 2;
 end;
result:=s;
end;
function palindrom(s:string):boolean;
var i:integer;
begin
i:=1;
while(i<=length(s) div 2)and(s[i]=s[length(s)-i+1]) do inc(i);
result:=i>length(s) div 2;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var n,i,k:integer;
begin
val(Edit1.Text,n,i);
if(i<>0)or(n<1)or(n>1000) then
 begin
  ShowMessage('N введено не верно');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
Memo1.Clear;
Memo1.ScrollBars:=ssVertical;
Memo1.Lines.Add('Числа, запись которых в двоичной ситеме есть палиндром');
k:=0;
for i:=2 to n do
if prost(i)and palindrom(dectobin(i)) then
 begin
  k:=1;
  Memo1.Lines.Add(inttostr(i)+'->'+dectobin(i));
 end;
if k=0 then Memo1.Lines.Add('До даннного N таких чисел нет');
end;
0
Вложения
Тип файла: rar Простые в СС10 палиндромы с СС2.rar (2.3 Кб, 2 просмотров)
D1973
Модератор
3573 / 2576 / 1257
Регистрация: 21.01.2014
Сообщений: 10,818
Записей в блоге: 3
Завершенные тесты: 1
17.10.2017, 16:08 3
[del]

Не по теме:

Пока писал - Puporev уже готовый код выложил...

0
qwertehok
2306 / 2210 / 602
Регистрация: 29.08.2013
Сообщений: 14,762
17.10.2017, 19:18 4
Цитата Сообщение от Puporev Посмотреть сообщение
function palindrom(s:string):boolean;
ReverseString?
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
17.10.2017, 19:27 5
Можно и так, подключить модуль вроде StrUtils и написать
Delphi
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
40
41
42
43
uses StrUtils;
function prost(n:integer):boolean;
var i:integer;
begin
i:=2;
while (i*i<=n)and(n mod i<>0) do inc(i);
result:=i*i>i;
end;
function dectobin(n:integer):string;
var s:string;
begin
s:='';
while n>0 do
 begin
  s:=inttostr(n mod 2)+s;
  n:=n div 2;
 end;
result:=s;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var n,i,k:integer;
begin
val(Edit1.Text,n,i);
if(i<>0)or(n<1)or(n>1000) then
 begin
  ShowMessage('N введено не верно');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
Memo1.Clear;
Memo1.ScrollBars:=ssVertical;
Memo1.Lines.Add('Числа, запись которых в двоичной системе есть палиндром');
k:=0;
for i:=2 to n do
if prost(i)and (reversestring(dectobin(i))=dectobin(i)) then
 begin
  k:=1;
  Memo1.Lines.Add(inttostr(i)+'->'+dectobin(i));
 end;
if k=0 then Memo1.Lines.Add('До данного N таких чисел нет');
end;
Вот забываю то что в подключаемых модулях.
0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
19.10.2017, 12:39  [ТС] 6
Ребят , а без применения функции можете как-то решить ? Нам сказали только массивы и циклы использовать , а функции мы не прошли ещё
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
19.10.2017, 13:07 7
Кстати у меня в функции prost ошибка, нужно
Delphi
1
result:=i*i>n;//не >i!!!
Без функций.
Delphi
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
40
41
{$R *.dfm}
uses StrUtils;
procedure TForm1.Button1Click(Sender: TObject);
var n,i,j,k,p:integer;
    s:string;
begin
val(Edit1.Text,n,i);
if(i<>0)or(n<1)or(n>1000) then
 begin
  ShowMessage('N введено не верно');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
Memo1.Clear;
Memo1.ScrollBars:=ssVertical;
Memo1.Lines.Add('Числа, запись которых в двоичной системе есть палиндром');
k:=0;
for i:=2 to n do
 begin
  j:=2; //проверяем на простое
  while (j*j<=i)and(i mod j<>0) do inc(j);
  if j*j>i then //если простое
   begin
    s:='';//переводим в СС 2
    p:=i;
    while p>0 do
     begin
      s:=inttostr(p mod 2)+s;
      p:=p div 2;
     end;
    if reversestring(s)=s then //если палиндром
     begin
      k:=1;//фиксируем наличие числа по условию
      Memo1.Lines.Add(inttostr(i)+'->'+s);//выводим
     end;
   end;
  end;
 if k=0 then Memo1.Lines.Add('До данного N таких чисел нет');
end;
end.
0
D1973
19.10.2017, 14:25
  #8

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
Кстати у меня в функции prost ошибка
Никто этого и не заметил бы :D

0
Puporev
19.10.2017, 14:34
  #9

Не по теме:

А вдруг кто-то зайдет в тему поиском. А там числа 9,15, 21... простые.

0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
19.10.2017, 18:35  [ТС] 10
А , ещё , ребят , можете объяснить что и каустики работает , в проге которую вы скинули , как работают эти операторы , функции
0
D1973
Модератор
3573 / 2576 / 1257
Регистрация: 21.01.2014
Сообщений: 10,818
Записей в блоге: 3
Завершенные тесты: 1
20.10.2017, 04:16 11
Цитата Сообщение от Lorkers Посмотреть сообщение
можете объяснить что и каустики работает
???
0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
20.10.2017, 15:27  [ТС] 12
memol ,что это значит , у меня в делфи красным выделяет это и говорит ,что это ошибка
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
20.10.2017, 15:29 13
не memol, а memo1
0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
20.10.2017, 15:29  [ТС] 14
Memo1 , Edit1.clear , тоже не очень понятно
0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
20.10.2017, 15:31  [ТС] 15
Delphi
1
2
3
4
5
6
7
8
ShowMessage('N введено не верно');
  Edit1.Clear;
  Edit1.SetFocus;
  exit;
 end;
Memo1.Clear;
Memo1.ScrollBars:=ssVertical;
Memo1.Lines.Add('Числа, запись которых в двоичной системе есть палиндром');
что значит это строчка , в моем делфи это почему-то не воспринимается
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
20.10.2017, 15:34 16
Что не понятно? Вы вообще хоть что в Делфи знаете, хоть пару страниц из учебника почитали?

Добавлено через 2 минуты
Цитата Сообщение от Lorkers Посмотреть сообщение
что значит это строчка
Которая, там их 8.
0
Lorkers
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
20.10.2017, 15:39  [ТС] 17
reversestring , чем это можно заменить в делфи , я просто не знаю как оно работает
0
Puporev
Модератор
55060 / 42327 / 29230
Регистрация: 18.05.2008
Сообщений: 100,025
20.10.2017, 15:46 18
reversestring это функция из модуля StrUtils, которая переворачивает строку например мама-> амам. Мы ее используем для определения палиндром или нет, если
reversestring(строка)=строка, то палиндром.
0
20.10.2017, 15:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2017, 15:46

Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром
Здравствуйте! Помогите решить задачу в VBA. Найти все простые натуральные...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru