Расширение longint'a

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

GOfffer
Сообщения: 5
Зарегистрирован: 22 янв 2008, 18:57

с калькулятором сидеть не обязательно...
[HTML]<html>
<head>
<title>Автоморфные числа в заданном интервале</title>
<script language="JavaScript">
<!-- //
function interav (obj )
{ var s=""
var l=obj.left.value
var r=obj.rig.value
var s="Автоморфные числа в интервале от "+l+" до "

+r+"\r\n"
for (var i=l; i<=r; i++)
if ( avtomorf (i))
s +=i+" "+i*i+"\r\n"
obj.result.value=s
}
function avtomorf (a )
{ var p=a*a
var sa= String(a)
var sp= String(p)
var nsa= sa.length
var nsp= sp.length
endsp=sp.substr(nsp-nsa,nsa)
return (endsp==sa)
}
//-->
</script>
</head>
<body>
<h4>Автоморфные числа в заданном интервале</h4>
<form name="form1">
<pre>
Левое значение интервала: <input type="text" size=10

name="left">
Правое значение интервала: <input type="text" size=10

name="rig"><hr>
<input type="button" value=Найти onClick="

interav(form1)">
<textarea cols=45 rows=5 name=result></textarea>
<input type="reset" value=Очистить>
</pre>
</form></body></html>[/HTML]

с этой прогой можно найти последовательность автоморфных чисел...
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

попробуйте интервал 2-100
сможет программа найти число?
3953007319108169802938509890062166509580863811000557423423230896109004106619977392256259918212890625
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

airyashov, как это число связано с интервалом 2 - 100?
Или это демонстрация того числа, которое HTML код не сможет найти?
It's a long way to the top if you wanna rock'n'roll
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

somewhere писал(а):airyashov, как это число связано с интервалом 2 - 100?
Или это демонстрация того числа, которое HTML код не сможет найти?
2-99 выдает 4 числа помоему (Автоморфные числа в интервале от 2 до 99
5 25
6 36
25 625
76 5776
),
а в интервале 2-100 пусто (Автоморфные числа в интервале от 2 до 100)

как раз Я склонен к вашему варианту на паскале :)
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

airyashov писал(а):2-99 выдает 4 числа помоему (Автоморфные числа в интервале от 2 до 99
5 25
6 36
25 625
76 5776
),
а в интервале 2-100 пусто (Автоморфные числа в интервале от 2 до 100)
Признаюсь, что не спец. в HTML-ных скриптах, но методом нежного взгляда и проб пришел к выводу, что таинсвенное описанное поведение кроется в строке кода:

for (var i=l; i<=r; i++)

У меня создалось впечатление, что здесь r - строкового типа. А i - число.
Т.е. для указанного интервала от 2 до 100 имеем:

for (var i='2'; i<='100'; i++)

Далее придположил, что инициализация i происходит путем успешного преобразование строки '2' в число 2, а вот при проверке i<='100' число обратно преобразуется в строку, и мы получаем '2' <= '100', что ложно (по правилам сравнения строк) и из цикла сразу выпадаем.

Правда, в эту теорию не вписывается тот факт, что есть указать интервал от 2 до 200, то искомые 4 числа опять находятся. Ведь, да, первая проверка ('2' <= '200') истинна, но уже следующий виток цикла, казалось бы, должен дать ложное условие ('3' <= '200')
Задаем от 3 до 200 - опять в ответе пусто.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Да ладно вам, это же HTML - это язык дизайнеров, а не программистов.
It's a long way to the top if you wanna rock'n'roll
Ответить