Товарищи, помогите пожалуйста!
читать дальшеу меня вот такое задание:
"аморфными называются числа, которые равны последним цифрам своего квадрата (напр. 25^2 = 625). Найти все аморфные числа в интервале (m;n)
вот программа:
REM аморфные числа, фио, 08.03.07
CLS
INPUT i = m TO n
i2 = i * i
str_i = Cstr(i)
str_i2 = Cstr(i2)
n1 = Len(str_i)
n2 = Len(str_i2)
IF str_i = Mid(str_i2, n2 - n1 +1, n1) THEN Debug. Print "аморфное число i = "; i;" i квадрат= "; i2
END IF
NEXT
программу мне сделали здесь, но она у меня не запускается и выдает ошибки.
помогите разобраться))
@темы:
Программирование (тема закрыта
могу посоветовать такой искусственный прием, если работаем в пределе [ -2^15 + 1, 2^15 ]:
на самих себя оканчиваются квадраты 6,76 ( далее 376, но уже вылезли за пределы ). и 5,25 ( далее 625, но уже вылезли )
это раз.)
два.
фактически, у нас речь идет о квадратах натур.чисел, причем таких, которые в записи квадрата содержат само себя.
тогда аморфное число можно искать по такому алгоритму ( как бы я делал это в паскале ):
сначала считываем число из данного интервала [М,N];
начинаем с первого;
подсчитываем число разрядов в числе М, сохраняем это в к-н переменной С;
далее находим корень из М, получаем некое число типа real, сохраняем в В;
далее надо проверить, целое ли это число: вычитаем из В целую часть числа и сравниваем с 10^( -2*С ), если разность меньше, то число, очевидно, В ( напр., при М=625 ) имеет вид 25.00000...,
далее находим число разрядов в целой части числа В и записываем в в С1
далее проверяем, делится нацело число ( M - B ) на 10^С1;
если да, то число аморфное)
сохраняем число М, увеличиваем М на 1 - и снова до N)
вот бы ещё вы мне программку правильную написали))
а то я чет ниче не поняла.-__-