পাইথন, 76 73 67 বাইট
f=lambda n,k=1:1-any(a**-~k*~-a**k%n for a in range(n))or-~f(n,k+1)
এটি অনলাইন চেষ্টা করুন!
আরও 1 বাইট 1 এর পরিবর্তে ট্রু ফিরে দিয়ে বাঁচানো যায় ।
বিকল্প বাস্তবায়ন
একই পদ্ধতির ব্যবহার করে, @ ফেয়ারসাম দ্বারা নিম্নলিখিত প্রয়োগগুলি রয়েছে যা তালিকার বোধগম্যতা ব্যবহার করে না।
f=lambda n,k=1,a=1:a/n or(a**-~k*~-a**k%n<1)*f(n,k,a+1)or-~f(n,k+1)
নোট করুন যে এই প্রয়োগের জন্য O (n λ (n) ) সময় প্রয়োজন। দক্ষতা নাটকীয়ভাবে উন্নত করা যেতে পারে যখন আসলে স্কোর হ্রাস 66 বাইট , কিন্তু ফাংশন ইনপুট 2 জন্য সত্য ফিরে আসবে ।
f=lambda n,k=1,a=1:a/n or~-a**k*a**-~k%n<1==f(n,k,a+1)or-~f(n,k+1)
পটভূমি
সংজ্ঞা এবং স্বরলিপি
সমস্ত নিয়োগকৃত ভেরিয়েবলগুলি পূর্ণসংখ্যা বোঝায়; এন , k , এবং α নির্দেশ করবে ইতিবাচক পূর্ণসংখ্যার; এবং পি একটি ইতিবাচক প্রধানমন্ত্রীকে বোঝায় ।
ক | খ যদি খ দিয়ে বিভাজ্য একটি , অর্থাত আছে যদি কুই যেমন যে খ = QA ।
a ≡ b ( mod m) যদি a এবং b এর একই অবশিষ্টাংশ Modulo m থাকে , অর্থাৎ, যদি m | ক - খ ।
λ (ঢ) সবচেয়ে ছোট ট যেমন যে একটি ট ≡ 1 ( গেলিক ভাষার ঢ) - অর্থাত, যেমন যে এন | একটি ট - 1 - সবার জন্য একটি করে coprime হয় এন ।
চ (ঢ) সবচেয়ে ছোট ট যেমন যে একটি 2k +1 ≡ একটি ট + 1 টি ( গেলিক ভাষার ঢ) - অর্থাত, যেমন যে এন | a কে + 1 (একটি কে - 1) - সকলের জন্য একটি ।
λ (n) ≤ f (n)
ফিক্স এন দিন একটি হতে coprime এন ।
সংজ্ঞা দ্বারা চ , এন | a f (n) +1 (a f (n) - 1) । যেহেতু একটি এবং এন একটি সাধারণ মৌলিক উত্পাদক নেই, তন্ন তন্ন না একটি চ (ঢ) + 1 এবং এন , যা বোঝা এন | a f (n) - 1 ।
যেহেতু λ (n) হ'ল ক্ষুদ্রতম পূর্ণসংখ্যা কে যেমন এন | একটি ট - 1 সব পূর্ণসংখ্যার জন্য একটি যে coprime হয় এন , এটা যে অনুসরণ করে λ (ঢ) ≤ চ (ঢ) ।
λ (n) = f (n)
যেহেতু আমরা ইতিমধ্যে qu (n) ≤ f (n) বৈষম্য প্রতিষ্ঠা করেছি , তাই কে = λ (এন) চ , অর্থাৎ যে এন সংজ্ঞায়িত শর্তটি সন্তুষ্ট করে তা যাচাই করা যথেষ্ট to a λ (n) +1 (a λ (n) - 1) সমস্ত a এর জন্য । এ জন্যে আমরা যে প্রতিষ্ঠা করব পি α | a λ (n) +1 (a λ (n) - 1) যখনই পি α | এন ।
λ (কে) | λ (এন) যখনই কে | n ( উত্স ), সুতরাং (a λ (k) - 1) (a λ (n) -λ (k) + a λ (n) -2λ (k) + ⋯ + a λ (কে) + 1) = a λ (এন) - 1 এবং, অতএব, একটি λ (কে) - 1 | a λ (n) - 1 | a λ (n) +1 (a λ (n) - 1) ।
যদি একটি এবং পি α coprime হয়, এর সংজ্ঞা দ্বারা λ এবং উপরোক্ত, পৃ α | a λ (p α ) - 1 | a λ (n) +1 (a λ (n) - 1) পছন্দসই অনুসারে অনুসরণ করে।
যদি a = 0 হয় তবে একটি λ (n) +1 (a λ (n) - 1) = 0 , যা সমস্ত পূর্ণসংখ্যার দ্বারা বিভাজ্য।
পরিশেষে, আমরা যদি যেখানে অবশ্যই বিবেচনা একটি এবং পি α একটি সাধারণ মৌলিক উত্পাদক আছে। যেহেতু পি মূল, তাই এটি পি ক । কারমাইকেল এর উপপাদ্য প্রমাণ করেন যে, λ (P α ) = (P - 1) পৃ α - 1 যদি পি> 2 বা α <3 এবং যে λ (P α ) = P α - 2 অন্যথায়। সমস্ত ক্ষেত্রে, λ (পি α ) ≥ পি α - 2 ≥ 2 α - 2 > α - 2 ।
অতএব, λ (ঢ) + 1 টি ≥ λ (P α ) +1> α - 1 , তাই λ (ঢ) + 1 টি ≥ α এবং পি α | p λ (n) +1 | a λ (n) +1 | a λ (n) +1 (a λ (n) - 1) । এটি প্রমাণ সম্পূর্ণ করে।
কিভাবে এটা কাজ করে
যদিও f (n) এবং λ (n) এর সংজ্ঞাগুলি ক এর সমস্ত সম্ভাব্য মান বিবেচনা করে , [0, ..., n - 1] এর মধ্যে থাকা তাদের পরীক্ষা করা যথেষ্ট ।
যখন এফ (এন, কে) বলা হয়, তখন এটি একটি পরিসরে একটি মানের সমস্ত মানের জন্য একটি কে + 1 (একটি কে - 1)% এন গুণায়, যা 0 হয় এবং কেবল যদি এন | a k + 1 (a কে - 1) ।
সব নির্ণিত তলানি শূন্য হন, ট = λ (ঢ) এবং any
আয় মিথ্যা , তাই চ (ঢ, ট) ফেরৎ 1 ।
অন্যদিকে, যখন ট <λ (ঢ) , 1-any(...)
ফিরে আসবে 0 তাই হয়, চ একজন বৃদ্ধি মান যাও recursively বলা হয় ট । নেতৃস্থানীয় -~
বাড়তি ফেরত মান চ (ঢ, K + 1 টি) , তাই আমরা যোগ 1 থেকে চ (ঢ, λ (ঢ)) = 1 প্রতিটি পূর্ণসংখ্যা জন্য একবার [1, ..., λ (ঢ) - 1 ] । চূড়ান্ত ফলাফল এইভাবে λ (এন) ।