ভূমিকা / পটভূমি
একটি সাম্প্রতিক আলোচনা মধ্যে ক্রিপ্টো চ্যাট আমি আলোচনা করতে সঙ্গে / সহায়তা সন্মুখীন হয়েছিল ফার্মার primality পরীক্ষা এবং কারমাইকেল নম্বর। এই পরীক্ষাটি সেই ভিত্তির উপর ভিত্তি করে তৈরি হয় যা a^(p-1) mod p==1
সর্বদা প্রাইমদের জন্য ধারণ করে p
তবে সর্বদা কমপোজাইটের জন্য নয়। এখন একটি কারমাইকেল নম্বর হ'ল মূলত ফেরমাটের পরীক্ষা সবচেয়ে খারাপ শত্রু: এমন একটি সংখ্যা যার জন্য আপনাকে সহ-প্রধান না হওয়ার জন্য বেছে নিতে হবে । এখন যদি সহ-প্রধান না হয় তবে আপনি মূলত একটি অ-তুচ্ছ কারণের সন্ধান করেছেনa
p
a^(p-1) mod p!=1
a
p
এবং যেমনটি আমরা সবাই জানি ফ্যাক্টরিং বেশ শক্ত হতে পারে। বিশেষত যদি সমস্ত কারণ যথেষ্ট পরিমাণে বড় হয়। আপনি এখন বুঝতে পারবেন কেন ফার্মাট পরীক্ষাটি অনুশীলন হিসাবে প্রায়শই ব্যবহার করা হয় না (ভাল আরও ভাল অ্যালগরিদম রয়েছে) কারণ এটি এমন একটি সংখ্যা রয়েছে যার জন্য আপনাকে ডিফেন্ডার হিসাবে (সুরক্ষার শর্তে) একই পরিমাণ কাজ করতে হবে আক্রমণকারী (নাম্বারটি ফ্যাক্টর)।
সুতরাং এখন যেহেতু আমরা জানি যে এই সংখ্যাগুলি কিছুটা আকর্ষণীয় কেন , আমরা এগুলি সম্ভব সংক্ষিপ্ত উপায়ে জেনারেট করব, সুতরাং আমাদের যদি কখনও প্রয়োজন হয় তবে আমরা কেবল জেনারেটিং কোডটি মুখস্ত করতে পারি!
কারমাইকেল নম্বরগুলি ওআইআইএস-এ A002997 নামেও পরিচিত । ইতিমধ্যে
একটি সম্পর্কিত চ্যালেঞ্জ রয়েছে , তবে সেখান থেকে প্রবেশ করুন এখানে প্রতিযোগিতামূলক নয় কারণ তারা আকারের বিপরীতে গতির জন্য অনুকূলিত হয়েছে। একই যুক্তিটি বিপরীত দিকটির জন্য ধারণ করে, এখানে এন্ট্রিগুলি আকারের পক্ষে গতির বিপরীতে ট্রেড-অফ করতে পারে।
সবিস্তার বিবরণী
ইনপুট
এটি একটি মান ক্রমচ্যালেঞ্জ, যাতে আপনি একটি ইতিবাচক বা অ-নেতিবাচক পূর্ণসংখ্যাকে n
ইনপুট হিসাবে গ্রহণ করেন। n
আপনার পছন্দ হিসাবে 0- বা 1-ইনডেক্সড হতে পারে (দয়া করে নির্দেশ করুন)।
আউটপুট
আপনার আউটপুটটি হয় হয় n
তৃতীয় n
কারমাইকেল নম্বর বা প্রথম কারমাইকেল নম্বর হবে, যেমন আপনি পছন্দ করেন (দয়া করে নির্দেশ করুন)।
সবিস্তার বিবরণী
একটি পূর্ণসংখ্যা x
হ'ল একটি কারমাইকেল নম্বর যদি এবং শুধুমাত্র যদি x
সংমিশ্রিত হয় এবং সমস্ত সংখ্যার y
সাথে gcd(x,y)=1
থাকে তবে এটি এটি ধারণ করে y^(x-1) mod x==1
।
কে জিতলো?
এই কোড-গলফ, তাই বাইটে সবচেয়ে সংক্ষিপ্ত কোড!
স্ট্যান্ডার্ড আইও এবং লুফোলের বিধিগুলি প্রযোজ্য।
পরীক্ষার কেস
প্রথম কয়েকটি কারমাইকেল নম্বরগুলি হ'ল:
561,1105,1729,2465,2821,6601,8911,10585,15841,
29341,41041,46657,52633,62745,63973,75361,101101,
115921,126217,162401,172081,188461,252601,278545,
294409,314821,334153,340561,399001,410041,449065,
488881,512461