Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37

не могу разобраться с циклом while

11.07.2015, 18:09. Показов 552. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Решаю задачку:
https://projecteuler.net/problem=3
ну и понятное дело не получается, делал ее на python:
Python
1
2
3
4
5
6
7
8
9
10
number = 600851475143 
n = 2
 
while number > n:
    if number % n == 0:
        number = number / n
        n = 2
    else:
        n = n + 1
print(n)
искомый ответ был получен
6857

попытался изобразить это на php. но как бы не совсем удачно

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php 
$a = 600851475143;
$b = 2;
while ($a > $b) {
    if ($a % $b == 0) {
        $a = $a / $b;
        $b = 2;
    } else {
        $b = $b + 1;
    }
}
echo "$a <br>";
?>
я так понял что проблема в условии if в итоге число все время делится только на 2, хотя условие четко указывает:
if ($a % $b == 0)

не могли бы подсказать, где ошибка в коде?
п.с. шутку про генетический код я уже слышал. смешно, но шутка сказанная дважды уже не такая смешная ))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2015, 18:09
Ответы с готовыми решениями:

Не могу разобраться с циклом
&lt;?php session_start(); $name = $_POST; $id = $_POST; $foto = $_POST; $xar = $_POST; $price = $_POST; ...

Не могу разобраться с циклом
Перед вами код корзины для Интернет магазина,а если точнее ajax который туда все помещает но он почему-то добавляет только 1 товар а...

Не могу разобраться с циклом
Все привет! Помогите разобраться с циклом... Вообщем проблема такая. Существует две таблицы rub и otzivi. Из первой мне нужно id из...

13
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
11.07.2015, 18:17
Цитата Сообщение от Dmitr1982 Посмотреть сообщение
не могли бы подсказать, где ошибка в коде?
вероятно в твоей версии интерпретатора int 32-разрядный, и данное число в int не помещается
0
59 / 59 / 46
Регистрация: 01.03.2015
Сообщений: 179
11.07.2015, 18:18
PHP
1
echo "$b <br>";
Выводит 6857.
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 18:22  [ТС]
SB5Ch, эм, а в чем проблема этой строки? разве что то не так?
0
59 / 59 / 46
Регистрация: 01.03.2015
Сообщений: 179
11.07.2015, 18:23
В коде на Python вы выводите n, а на PHP $a(number).
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 18:30  [ТС]
SB5Ch, так они вроде в итоге должны быть равными, проверил в python ну да, в заключительном действии они равны 6857/6857=1, так что вроде все ок все равно что выводить number или n

Добавлено через 3 минуты
буду смотреть в сторону Jewbacabra... хотя не до конца понимаю... в чем проблема может быть. да, число 600851475143 не убирается в значение Int 32 бит, правильно ли я понимаю, что эта проблема решается изменением строчки:
PHP
1
if ($a % $b == 0) {
на строчку
PHP
1
if ($a % $b === 0) {
0
59 / 59 / 46
Регистрация: 01.03.2015
Сообщений: 179
11.07.2015, 18:33
Jewbacabra правильно подсказал. Я проверил, у меня и $a и $b равны 6857.
Можете проверить здесь - http://www.tutorialspoint.com/... online.php
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 18:36  [ТС]
SB5Ch, проверили мой код?
аха, проверил по указанной ссылке... хм, бум разбираться
спасибо отвечающим
0
59 / 59 / 46
Регистрация: 01.03.2015
Сообщений: 179
11.07.2015, 18:37
Да. Выводит 6857.
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 19:20  [ТС]
ни как не вкурю, как же решить эту проблему, ок, число $a типа не int а float как я понимаю, но все равно не понимаю, почему не работает строка:

if ($a % $b == 0)

и действие заходит в этот блок, остаток от деления не равен 0 а действие в блоке выполняется ( need some help
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
11.07.2015, 19:29
Цитата Сообщение от Dmitr1982 Посмотреть сообщение
число $a типа не int а float
при вычислении остатка приведется к int
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 19:58  [ТС]
Jewbacabra,
пытаюсь:
if ((int)$a%$b == 0)
но результат тот же
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
11.07.2015, 20:04
Цитата Сообщение от Dmitr1982 Посмотреть сообщение
но результат тот же
а почему он должен быть другим???
PHP
1
var_dump((int)600851475143);
возможно fmod поможет.
0
0 / 0 / 0
Регистрация: 20.04.2015
Сообщений: 37
11.07.2015, 20:10  [ТС]
Jewbacabra,
да, помогло, спасибо.
чувствую себя совсем идиотом, находил эту функцию, но не понял как она работает, да и сейчас то не понимаю, че.. пошел понимать. еще раз спс.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.07.2015, 20:10
Помогаю со студенческими работами здесь

Не могу разобраться с циклом
Немного не понимаю почему выходит ошибка &quot;Переменной Xmin присвоено значение, но оно ни разу не использовано&quot; и &quot;Переменной Xmax...

Не могу разобраться с циклом
Ребята учу cамостоятельно пайтон. Хочу написать цикл, который срабатывает cразу, когда переменная увеличивается на 1 или уменьшается....

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

не могу разобраться с циклом
Program Spisok; uses crt; type Tinf=string; List=^TList; TList=record data,parts:TInf; next:List; end;

Не могу разобраться с циклом
Задача нахождения минимума функции методом наискорейшего спуска из 2х переменных вида: z=ax12+bx22+cx1+dx2. Никак не могу разобраться с...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru