با سلام،
روش فرار از تقسیم و استفاده از درخت حالت (State Tree)
یک روش برای تشخیص اعداد اول هست که می خوام نظراتتون رو بدید. x عدد مورد نظر هست.
بعد از اینکه مطمئن شدیم رقم یکان عدد 1،3،7 یا 9 هست سعی می کنیم دو عدد رو که ضرب اونها برابر x میشه رو پیدا کنیم. اگه این دو عدد پیدا شد عدد اول نیست در غیر این صورت اوله.
x=4654123یک جدول داریم که حالت هایی که حاصل ضرب دو عدد تک رقمی که یکانش 3 (هر 4 حالت را داریم) می شود را از آن می خوانیم. a,b دو عدد فرضی هستند.
حالت اول:
6 (رقم نقلی)
9?????
x
?????7
------------
3?????
حالت بعدی 3 و 1 است و ...
می توان این هر حالت را به 1 نخ اجرایی داد. نخ های اجرایی شاخه های یک درخت و گره هایشان را ایجاد می کنند. یک شاخه از این درخت یک حالت مانند حالت بالا را بررسی می کند. هر کدام از نخ های اجرایی که به صورت موازی اجرا می شوند بتوانند به دو عدد برسند تمام نخ ها متوقف و نتیجه این است که عدد اول نیست.
توضیحات بالا به شکل گذرا گفته شده و با پیاده سازی الگوریتم در یک زبان برنامه نویسی تمام جزئیات معلوم می شود.
این الگوریتم در حد تئوری باقی مونده و هنوز پیاده سازیش نکردم.
توضیحات بیشتر را در گفتگو برای دوستان علاقه مند خواهم داد.