検索条件
全4件
(1/1ページ)
とりあえず10進数で2300桁ぐらい扱える全然BigじゃないBigInt。負の値は扱えない。
256のとこを大きくしたら扱える桁数が増える。
割り算と剰余演算子作るのめんどくさくて作ってないけど、
たいてい必要になるのってその辺なんだよなー。もじゅろ10億7とかさー。
というわけで、longのもじゅろだけはとれるよーにしといた。
実戦で使える速度が出るかどうかは未検証。
まぁでもそういう問題は、たぶん、計算量的に無理なようにできてるでしょうね。
たとえば、素因数分解したときに 2^0 * 3^1 * 5^4 * 7^2 とかってなったときに、全部の約数を列挙したい時用。
わざわざこういうものを再生産しないといけないところにC#の不便さを感じる。
今日の250が落ちたのはこいつがバグってたせい……ぐぅ。
class PrimeTable { public List<int> Primes = new List<int>(); public bool[] IsPrime; public PrimeTable(int max) { IsPrime = new bool[max + 1]; for (int i = 2; i <= max; i++) IsPrime[i] = true; for (int i = 2; i <= max; i++) if (IsPrime[i]) { Primes.Add(i); for (int j = i * 2; j <= max; j += i) IsPrime[j] = false; } } } public class Program { static void Main() { foreach (var p in new PrimeTable(100).Primes) Console.WriteLine(p); } }