光ファイバーの人はとっても速いので1Mbps以上なんて基準は余裕でクリアします。基準に比べて、充分すぎるくらい充分に速いです。光ファイバーの人は入会のための充分条件を持っています。個々に調べるしかないですが、まぁすべてではないにせよ多くの場合、1Mbpsは出るでしょう。素数なら必ずこの余りが1になることが分かってるからです。これはフェルマーの定理によって保証されることです。上記の余りが1になるかをチェックする「フェルマーテスト」に合格できないような数は門前払いです。それは絶対に素数でないので入会は認められません。フェルマーテストを通過できるということは素数性の必要条件です。素数であれば、もちろんフェルマーテストに合格します。素数性はフェルマーテスト合格の充分条件です。問題は、フェルマーテストにパスするからといって、まだ素数だとは断言できないということ。素数であれば必ずフェルマーテストを通るが、逆は言えない、フェルマーテストを通るものがすべて素数だけとは限らない。フェルマーテストで弾かれるものは100%素数でない(合成数)です。このことを実際に確かめるために、次のようなスクリプトを走らせてみましょう。割った余りを調べます。オブジェクトを使います。インクルードしています。割った余りを(Bigintオブジェクトとして)返します。割って、本当に素数かどうか確認します。フェルマーテストを通らないものは絶対に素数でないのでこの確認はするまでもありません。素数ではありません.」という出力が混ざっているのが観察できます。素数でないくせにフェルマーテストをすり抜けてしまう連中がいるのです。結局、フェルマーの小定理の逆は、つねに成り立つわけではないことが分かりました。成り立たない例(反例)が見つかったので議論の余地ありません。いえ、フェルマーテストはほとんどの合成数をフィルタリングしてくれます。