Witam!

Mam pytanie do ludzi bardziej zaawansowanych w matematyce niż ja. Otóż piszę programik, który ma testować pierwszość danej liczby nieparzystej za pomocą testów probabilistycznych i mam pewien problem. Jak wiadomo istnieją pewne liczby zwane liczbami Carmichaela, które według źródeł jakie czytałem są pseudopierwsze przy każdej podstawie a. Liczby te przez test oparty o MTW powinny zostać uznane za pierwsze jednak jeżeli ustawie w moim programie większą liczbę losowań powiedzmy powyżej 10 to zawsze znajdzie się jakaś liczba dla której kongurencja nie jest spełniona. Wszystkie programy o podobnej funkcjonalności jakie znalazłem w Internecie zachowują się podobnie, czyli uznają liczby Carmichaela za złożone (ciekawe dlaczego). Podejrzewam, że kluczem może być niepoprawna implementacja funkcji ModPow (Modular Exponential), która operuje na dosyć dużych liczbach i być może coś źle zaokrągla. Jednak aby się upewnić korzystałem również z funkcji ModPow pochodzącej z różnych bibliotek i zawsze efekt był taki sam.

Zależy mi na tym aby te liczby nie były uznawane za złożona, ponieważ chcę wykazać wady tego algorytmu w stosunku do testu solovaya-strassena.

Co może być nie tak z moim programem i czy liczby Carmichaela aby na pewno są pseudopierwsze przy KAŻDEJ podstawie?