数字を使わずに素数判定する
はちろくチャットで「プログラミング言語のうち特定のキーワードを使ってはいけない縛りで何か書いてみようぜ」、という話題があったので数字を使わずに素数を判定す方法を書いてみた。言語はperl。宣言しただけの変数を数字として評価すると0が入っているという特徴を使ってみた。
use strict; use warnings; if (is_prime(shift)) { print "this is prime"; } else { print "this is not prime"; } sub is_prime{ my $num = shift; my $check; my $zero; $check++; while (++$check < $num) { return unless ($num % $check); } return ++$zero; }
この問題はゼロを表現する方法がミソでしょうか。