Технический форум

Технический форум (http://www.tehnari.ru/)
-   Basic (http://www.tehnari.ru/f127/)
-   -   Найти четырехзначное число (http://www.tehnari.ru/f127/t249598/)

iks2 26.10.2016 15:20

Найти четырехзначное число
 
Задача
Найти наименьшее четырехзначное число такое, что это число является квадратом целого числа. Кроме того искомое число состоит только из четных не повторяющихся цифр. Программа позволила найти это число 4096.

Вопросы
1. Интересно, есть ли подобное число из всех пяти четных цифр?
2. Существует ли аналог подобного числа из нечетных цифр?

Код:

REM
REM  4096
REM

CLS
 
FOR i = 10 TO 100 STEP 2
  b = i * i
  n = INT(LOG(b) / LOG(10))
  a1 = b \ 10 ^ n
  a2 = b \ 10 ^ (n - 1) MOD 10
  IF a1 MOD 2 = 0 AND a2 MOD 2 = 0 THEN PRINT b;
NEXT i
END


Vladimir_S 26.10.2016 16:00

Цитата:

Сообщение от iks2 (Сообщение 2427557)
Кроме того искомое число состоит только из четных не повторяющихся цифр. Программа позволила найти это число 4096.

А с каких это пор 9 - четная цифра?

iks2 26.10.2016 17:03

Vladimir_S
Извините - 6084.
9 - это конечно НЕ четная цифра. Моя ошибка - наверно к дождю...

iks2 27.10.2016 19:58

Аналога подобного числа из нечетных цифр не существует. Хотя можно назвать число 1. Но оно не четырехзначное.

Vladimir_S 28.10.2016 10:35

Что-то, сударь, не узрел я в Вашей программе проверки условия неповторямости цифр. Потому нарисовал по-своему (Паскаль):
Код:

Var
 N,i,j,k,m,D:Word;
Begin
 for i:=1 to 4 do
  for j:=0 to 4 do
  if (j<>i) then
    for k:=0 to 4 do
    if (k<>i) and (k<>j) then
      for m:=0 to 4 do
      if (m<>i) and (m<>j) and (m<>k) then
        begin
        N:=2*i*1000+2*j*100+2*k*10+2*m;
        D:=TRUNC(Sqrt(N));
        if D*D=N then
          begin
          Writeln(D,'*',D,' = ',N);
          Readln;
          exit;
          end;
        end;
 Writeln('No such values!');
 Readln
End.

Проверил по тому же алгоритму существование решения для пяти- и шестизначных чисел. Нету. Но если, например, отказаться от условия неповторяемости цифр, оставив только требование четности, то - пожалуйста:
162*162 = 26244
478*478 = 228484

iks2 28.10.2016 10:45

Vladimir_S
условие неповторяемости?
.....
Вы понимаете подобное условие имеет смысл, если программа выдает на экран много значений. Но если чисел скажет не более 10, то нет особого смысла вводить "лишний" код. - надо просто посмотреть и выбрать нужное (если таковое есть).

Vladimir_S 28.10.2016 10:49

Цитата:

Сообщение от iks2 (Сообщение 2428155)
Вы понимаете подобное условие имеет смысл, если программа выдает на экран много значений. Но если чисел скажет не более 10, то нет особого смысла вводить "лишний" код. - надо просто посмотреть и выбрать нужное (если таковое есть).

Да я так и понял. Просто, полагаю, решать - так решать! Компьютер - он железный, вот пусть и сортирует. :D


Часовой пояс GMT +4, время: 12:48.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.