Няшная / Говнокод #21604 0 1234567891011121314151617181920212223242526272829303132333435 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int i,n,a,b,f=0,k=0; scanf("%d",&n); for(i=1;i<=n;i++){ } while(i!=0){ i=i/10; f++; } while(i<=n){ a=a/10; b=b/10; a=a%10; b=b%10; i=a%(pow(10,f))+b*(pow(10,f)); if(i%a==0&&i%b==0)k++; i=i/10; i=i%10; } printf("%d",k); return 0; } Найти количество натуральных чисел, не превосходящих N, и делящихся на каждую из своих цифр. Запостил: plkvich691, 30.10.2016 (Updated 31.03.2018) Комментарии (6) RSS Alexey 10 лет ago # 0 Я у мамы программист: <?php echo getQuantity(0, 1000000) . PHP_EOL; function getQuantity(int $min, int $max): int { if ($min > $max) { return 0; } for ($i = $number = $min; $i <= $max; $i++, $number = $i) { for ( ; $number > 0; $number /= 10) { @$digit = $number % 10; if (!$i || !$digit) { continue; } if ($i % $digit) { continue 2; } } @$quantity += 1; } return $quantity; } ?> Ответить Alexey 10 лет ago # 0 ⇈ <?php # -_- echo getQuantity(0, 10000000) . PHP_EOL; function getQuantity(int $min, int $max): int { if ( $min > $max ) { return 0; } for ( $i = $number = $min; $i < $max; $i += 1, $number = $i ) { for ( ; $number > 0; $number /= 10 ) { @$digit = $number % 10; if ( !$i || !$digit ) { continue; } if ( $i % $digit ) { continue 2; } } @$quantity += 1; } return $min <= 0? $quantity - 1: $quantity; } ?> Ответить 3_dar 10 лет ago # 0 ⇈ guest? Ответить barop 10 лет ago # 0 лабы не нужны Ответить 1024-- 10 лет ago # 0 > a=a/10; > b=b/10; > a=a%10; > b=b%10; > > i=a%(pow(10,f))+b*(pow(10,f)); > if(i%a==0&&i%b==0)k++; > > i=i/10; > i=i%10; Похоже, задачу попытались решить полным перебором всех решений. Ответить barop 10 лет ago # 0 ⇈ Я всегда так делаю. Пытаюсь разные значки подставить и смотрю чтобы результат был правильный. У меня просто памяти плохая, я не всегда помню какой значок за что отвечает Ответить Добавить комментарий Отменить ответ Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю: А не использовать ли нам bbcode? [b]жирный[/b] — жирный [i]курсив[/i] — курсив [u]подчеркнутый[/u] — подчеркнутый [s]перечеркнутый[/s] — перечеркнутый [blink]мигающий[/blink] — мигающий [color=red]цвет[/color] — цвет (подробнее) [size=20]размер[/size] — размер (подробнее) [code=<language>]some code[/code] (подробнее)
Alexey 10 лет ago # 0 Я у мамы программист: <?php echo getQuantity(0, 1000000) . PHP_EOL; function getQuantity(int $min, int $max): int { if ($min > $max) { return 0; } for ($i = $number = $min; $i <= $max; $i++, $number = $i) { for ( ; $number > 0; $number /= 10) { @$digit = $number % 10; if (!$i || !$digit) { continue; } if ($i % $digit) { continue 2; } } @$quantity += 1; } return $quantity; } ?> Ответить
Alexey 10 лет ago # 0 ⇈ <?php # -_- echo getQuantity(0, 10000000) . PHP_EOL; function getQuantity(int $min, int $max): int { if ( $min > $max ) { return 0; } for ( $i = $number = $min; $i < $max; $i += 1, $number = $i ) { for ( ; $number > 0; $number /= 10 ) { @$digit = $number % 10; if ( !$i || !$digit ) { continue; } if ( $i % $digit ) { continue 2; } } @$quantity += 1; } return $min <= 0? $quantity - 1: $quantity; } ?> Ответить
1024-- 10 лет ago # 0 > a=a/10; > b=b/10; > a=a%10; > b=b%10; > > i=a%(pow(10,f))+b*(pow(10,f)); > if(i%a==0&&i%b==0)k++; > > i=i/10; > i=i%10; Похоже, задачу попытались решить полным перебором всех решений. Ответить
barop 10 лет ago # 0 ⇈ Я всегда так делаю. Пытаюсь разные значки подставить и смотрю чтобы результат был правильный. У меня просто памяти плохая, я не всегда помню какой значок за что отвечает Ответить
> b=b/10;
> a=a%10;
> b=b%10;
>
> i=a%(pow(10,f))+b*(pow(10,f));
> if(i%a==0&&i%b==0)k++;
>
> i=i/10;
> i=i%10;
Похоже, задачу попытались решить полным перебором всех решений.
Пытаюсь разные значки подставить и смотрю чтобы результат был правильный. У меня просто памяти плохая, я не всегда помню какой значок за что отвечает