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

Палиндромы и двоичная система

20.10.2017, 18:48. Показов 5857. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Само задание звучит так : Найти все простые числа, не превосходящие натуральное число N, двоичная запись которых представляет собой палиндром. N задано, и не должно превосходить 1000. Палиндром – это число, которое одинаково читается слева направо и справа налево.
Я написал программу , она переводит числа в двоичную систему, а как теперь эту программу перевести , чтобы она работала для всех чисел меньше заданного с клавиатуры ? А потом мне нужно как-то ,чтобы она проверяла все элементы , палиндромы они или нет и вывели палиндромы на экран ( те , числа , которые в двоичной системе).
Спасите человека (

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var m:array[1..100]of integer;
n:longint;
i,k:integer;
 
begin;
 write('-> ');
 readln(n);
 k := 0;
 if n=0 then
 begin
  k:=1;
  m[k]:=0;
 end else
 while n<>0 do
 begin
  inc(k);
  m[k] := n mod 2;
  n := n div 2;
 end;
 for i:=k downto 1 do write(m[i],' ');
 readln;
 end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.10.2017, 18:48
Ответы с готовыми решениями:

Двоичная система счисления
Дано число, перевести его в двоичную систему счисления. Я взял начальное число 57. Итог деления:...

Двоичная система и последовательности
Недавно Вася научился переводить числа в двоичную систему исчисления. И заметил интересную...

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

Циклы, двоичная система счисления!
Здравствуйте, благородные Умы! Помогите, пожалуйста, решить задачку на Pascal'e, если можно до...

6
Платежеспособный зверь
8861 / 4291 / 1629
Регистрация: 28.10.2009
Сообщений: 11,452
20.10.2017, 19:01 2
То, что написано выше, конечно, бред.
Задача очень проста. Её надо разбить на подзадачи, которые здесь решались 100 раз, а то и более.
Итак план:
1.Вводим N
2.Циклом for перебираем все числа от 1 до N
3. Выясняем, является ли очередное число простым, если да, то:
....3.а. Снимаем с него копию и переводим её в двоичную систему.
....3.б. Для двоичного числа выполняем проверку на палиндром и в случае успешности, печатаем выбранное число.
Всё.
Ах, да! В расширенном поиске по разделу Pascal ищем пункты 3, 3а,3б и впихиваем их в свою программу.
Вот теперь всё.
0
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
20.10.2017, 22:16  [ТС] 3
если программа простая , не могли бы вы ее написать ? А я бы в ней покопался , для вас это просто , а я сижу с трех часов дня
Был бы очень благодарен

Добавлено через 37 минут
Если вам не сложно напишите код , не говоря мне какой я даун , я это и так знаю(
0
Платежеспособный зверь
8861 / 4291 / 1629
Регистрация: 28.10.2009
Сообщений: 11,452
20.10.2017, 23:51 4
Я Вам уже и план дал, и сказал где что искать. Вам что, влом из частей программу собрать?
0
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
21.10.2017, 11:02  [ТС] 5
Не в лом , мне просто это сложно соединить , сложно представить как работает ,все вместе , вот я и прошу написать , для вас же это не займёт много времени , а я 3 часа копался и не справился , если вы напишите я покопаюсь и разберусь во всем , это точно , не в лом мне , просто программированием не занимался и все с нуля идёт , помогите пожалуйста
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
21.10.2017, 11:32 6
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Ну писал же все здесь.
Найти все простые числа, не превосходящие натуральное число N, двоичная запись которых представляет собой палиндром
Вот для Турбо Паскаль.
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
40
41
42
43
44
45
46
47
48
uses crt;
{функция определения простого числа}
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>n;
end;
{функция перевода из СС10 в СС2}
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;
 
var n,i,k:integer;
begin
clrscr;
repeat
write('Введите натуральное число от 1 до 1000 n=');
readln(n);
until (n>0) and(n<=1000);
writeln('Числа, запись которых в двоичной системе есть палиндром');
k:=0;
for i:=2 to n do
if prost(i)and palindrom(dectobin(i)) then
 begin
  k:=k+1;
  writeln(i,'->',dectobin(i));
 end;
if k=0 then writeln('До данного N таких чисел нет');
readln;
end.
Добавлено через 13 минут
Вот тоже без функций, а то ты там сильно плакался по этому поводу.
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
uses crt;
var n,i,j,k,p:integer;
    s:string;
begin
clrscr;
repeat
write('Введите натуральное число от 1 до 1000 n=');
readln(n);
until (n>0) and(n<=1000);
writeln('Числа, запись которых в двоичной системе есть палиндром');
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:=chr(p mod 2+48)+s;
      p:=p div 2;
     end;
   j:=1;
   while(j<=length(s) div 2)and(s[j]=s[length(s)-j+1]) do inc(j);
   if j>length(s) div 2 then
    begin
     k:=k+1;
     writeln(i,'->',s);
   end;
  end;
 end;
if k=0 then writeln('До даннного N таких чисел нет');
readln;
end.
1
0 / 0 / 0
Регистрация: 17.10.2017
Сообщений: 23
21.10.2017, 20:48  [ТС] 7
Огромное тебе спасибо , друг , ты очень мне помог!
0
21.10.2017, 20:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2017, 20:48
Помогаю со студенческими работами здесь

Двоичная система
Нужно написать программу на СИ(не на си++), чтоб та Представляла заданное число в двоичной системе...

двоичная система.
Пускай имеем число заданное в двоичной системе длина которого не привышает 10 000 двоичных...

Двоичная система
Перевести число в двоичную систему счисления. Посчитать количество единиц в двоичной записи числа i.

Двоичная система С++
Существуют ли какие-то ключевые слова, которые переводят числа с 10 в 2 систему счисления. Или...


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

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

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