কানিংহাম চেইন গণনা করা হচ্ছে


14

প্রধান সংখ্যা সর্বদা মানুষকে মুগ্ধ করেছে। 2300 বছর আগে ইউক্লিড তার "উপাদান" তে লিখেছিলেন

একটি মৌলিক সংখ্যাটি যা একক দ্বারা পরিমাপ করা হয়।

যার অর্থ একটি প্রাইম কেবলমাত্র 1(বা নিজে থেকেই) বিভাজ্য ।

লোকেরা সর্বদা মৌলিক সংখ্যার মধ্যে সম্পর্কের সন্ধান করে এবং বেশ কিছু অদ্ভুত ("আকর্ষণীয়" হিসাবে) স্টাফ নিয়ে আসে।

উদাহরণস্বরূপ একটি সোফি জার্মেইন প্রাইম একটি প্রাইম pযার 2*p+1জন্য এটি প্রাইমও।

একটি নিরাপদ মৌলিক একটি মৌলিক হল p, যার জন্য (p-1)/2যা ঠিক সোফি জার্মেই প্রধানমন্ত্রী এর পিছন শর্ত এছাড়াও প্রধানমন্ত্রী হয়।

এগুলি আমরা এই চ্যালেঞ্জটিতে যা খুঁজছি তার সাথে সম্পর্কিত।

টাইপ আইয়ের একটি কানিংহাম চেইন প্রাইমগুলির একটি সিরিজ, যেখানে শেষটি ব্যতীত প্রতিটি উপাদান একটি সোফি জার্মেইন প্রাইম এবং প্রথমটি ব্যতীত প্রতিটি উপাদানই নিরাপদ প্রাইম । এই চেইনে উপাদানগুলির সংখ্যাটিকে এটি দৈর্ঘ্য বলা হয় ।

এর অর্থ হ'ল আমরা একটি প্রাইম দিয়ে শুরু করি pএবং গণনা করি q=2*p+1। তাহলে qখুব মৌলিক হয়, আমরা ধরনের Cunnigham শৃঙ্খল আছে আমি দৈর্ঘ্য 2. এর তারপর আমরা পরীক্ষা 2*q+1পর্যন্ত পরবর্তী উত্পন্ন সংখ্যা যৌগিক, এবং তাই।

দ্বিতীয় ধরণের কানিংহাম চেইনগুলি প্রায় একই মূলনীতি অনুসরণ করে নির্মিত হয়, কেবলমাত্র 2*p-1প্রতিটি পর্যায়ে আমরা যাচাই করি কেবল তারতম্য।

কানিংহাম চেইনগুলির দৈর্ঘ্য 1 হতে পারে , যার অর্থ 2 2 পি + 1 বা 2 * পি -1 দুটিই প্রধান নয়। আমরা এগুলিতে আগ্রহী নই

কানিংহাম চেইনের কয়েকটি উদাহরণ

2আমার দৈর্ঘ্যের 5 ধরণের শৃঙ্খলা শুরু হয় ।

2, 5, 11, 23, 47

পরবর্তী নির্মিত সংখ্যাটি 95যা মূল নয় would
এটাও আমাদের বলে, যে 5, 11, 23এবং 47ধরনের কোনো শৃঙ্খল না শুরু আমি , কারণ এটি preceeding উপাদান হবে।

2এছাড়াও ধরনের একটি চেইন শুরু দ্বিতীয় দৈর্ঘ্য 3।

2, 3, 5

পরবর্তীটি হবে 9, যা প্রধান নয়।

আসুন II11 টাইপ করার চেষ্টা করুন (আমরা এটিকে প্রথম টাইপ থেকে বাদ দিয়েছি )। ঠিক আছে, পরবর্তী হবে, যা প্রধান নয়, সুতরাং আমাদের সেই "চেইন" এর জন্য দৈর্ঘ্য 1 থাকবে, যা আমরা এই চ্যালেঞ্জের মধ্যে গণনা করি না।
21

চ্যালেঞ্জ

একটি প্রোগ্রাম বা ফাংশন লিখতে যে একটি নম্বর দেওয়া nইনপুট, লিখেছেন / আয় হিসেবে শুরুর নম্বর n তম এর কানিংহাম শৃঙ্খল টাইপ আমি বা দ্বিতীয় এর অন্তত দৈর্ঘ্য 2 একটি স্থান দ্বারা অনুসরণ শৃঙ্খল ধরণ দ্বারা অনুসরণ এটা শুরু হয় ( আমি বা II ), তার পরে একটি কোলন থাকে, তারপরে সেই ধরণের চেইনের দৈর্ঘ্য হয়। যদি কোনও প্রাইম উভয় ধরনের চেইন শুরু করে (প্রথম টাইপ করুন এবং দ্বিতীয় টাইপ করুন) প্রথম টাইপের চেইনটি প্রথম গণনা করা হয়।

উদাহরণ: 2 I:5

মনে রাখবেন, এটি nকোনও প্রকারের আগে শুরু করা শৃঙ্খলার অংশ হতে পারে , সেক্ষেত্রে এ জাতীয় শৃঙ্খলার একটি প্রারম্ভিক সংখ্যা হিসাবে বিবেচনা করা উচিত নয় ।

এটি কীভাবে শুরু হয় তা খতিয়ে দেখা যাক

আমরা দিয়ে শুরু 2। যেহেতু এটা সব সময়ে প্রথম প্রধানমন্ত্রী হয় আমরা নিশ্চিত কোন একটি নিম্ন মৌলিক রয়েছে সেটা দিয়ে শুরু শৃঙ্খল যে থাকতে পারে 2
টাইপ আমি হতে হবে একটি চেইন পরবর্তী নম্বর 2*2+1 == 55প্রধান, সুতরাং আমাদের ইতিমধ্যে কমপক্ষে 2 দৈর্ঘ্যের একটি চেইন রয়েছে।
আমরা প্রথম চেইন হিসাবে এটি গণনা। টাইপ II সম্পর্কে কী? পরবর্তী নম্বর হবে 2*2-1 == 33প্রধান, তাই দ্বিতীয় টাইপের জন্য কমপক্ষে 2 দৈর্ঘ্যের একটি শৃঙ্খল।
আমরা দ্বিতীয় চেইন হিসাবে এটি গণনা। এবং আমরা এর জন্য সম্পন্ন করেছি 2

পরবর্তী প্রধানমন্ত্রী হয় 3। এখানে আমাদের এটি পরীক্ষা করা উচিত যে এটি একটি শৃঙ্খলে রয়েছে যা নীচের দিকে শুরু হয়েছিল।
টাইপ আমি পরীক্ষা করে দেখুন: (3-1)/2 == 11প্রাইম নয়, সুতরাং 3 টাইপ আইয়ের শৃঙ্খলার জন্য একটি সূচনা পয়েন্ট হতে পারে
Let's আসুন এটি পরীক্ষা করা যাক। পরবর্তী হবে 3*2+1 == 77প্রধান, সুতরাং আমাদের কমপক্ষে 2 দৈর্ঘ্যের টাইপ I এর একটি শৃঙ্খল রয়েছে We আমরা এটিকে তৃতীয় চেইন হিসাবে গণনা করি।
এখন আমরা যাচাই করি 3যে কোনও প্রকার II চেইনে দেখা যাচ্ছে যা নীচের দিকের প্রধানমন্ত্রী শুরু হয়েছিল। (3+1)/2 == 22প্রাথমিক, সুতরাং 3 একটি প্রারম্ভিক সংখ্যা ধরণের II এর শৃঙ্খলার জন্য । সুতরাং এটি গণনা করা হয় না, এমনকি যদি এই চেইনের পরের সংখ্যাটি , যা হবে হিসাবে বিবেচনা করা যাবে না , মৌলিক। (অবশ্যই আমরা এটি ইতিমধ্যে জানতাম এবং এই চেকগুলি কীভাবে করা যায় তা আপনি অবশ্যই নিজের পদ্ধতি সম্পর্কে ভাবতে পারেন এবং করা উচিত))35

এবং তাই আমরা জন্য পরীক্ষা 5, 7, 11যতক্ষণ না আমরা অন্তত 2 দৈর্ঘ্যের n তম কানিংহাম শৃঙ্খল খুঁজে পেতে এবং ইত্যাদি, বেড়ে চলেছে।

তারপরে (বা সম্ভবত কিছু সময় আগে ;)) আমাদের পাওয়া চেইনের সম্পূর্ণ দৈর্ঘ্য নির্ধারণ করতে হবে এবং পূর্বে উল্লিখিত বিন্যাসে ফলাফলটি মুদ্রণ করতে হবে।

যাইহোক, আমার পরীক্ষাগুলিতে আমি এর 2চেয়ে বেশি দৈর্ঘ্য সহ উভয় ধরণের চেইন শুরু করা ছাড়াও কোনও প্রাইম পাইনি 1

ইনপুট / আউটপুট উদাহরণ

ইনপুট

1

আউটপুট

2 I:5


ইনপুট

10

আউটপুট

79 II:3


ইনপুট

99

আউটপুট

2129 I:2


ইনপুটগুলির জন্য আউটপুটগুলি 1..20

2 আমি: 5
2 II: 3
3 আমি: 2
7 দ্বিতীয়: 2
19 দ্বিতীয়: 3
29 আমি: 2
31 দ্বিতীয়: 2
41 আমি: 3
53 আমি: 2
79 দ্বিতীয়: 3
89 আমি: 6
97 দ্বিতীয়: 2
113 আমি: 2
131 আমি: 2
139 দ্বিতীয়: 2
173 আমি: 2
191 আমি: 2
199 II: 2
211 II: 2
229 II: 2

প্রথম 5000 আউটপুটগুলির একটি তালিকা এখানে পাওয়া যাবে

এটি কোড গল্ফ। আউটপুটটিতে স্বেচ্ছাসেবী স্থানের অনুমতি দেওয়া হয়, তবে উদাহরণ এবং উদাহরণ অনুসারে টাইপ এবং সংখ্যাগুলি একটি একক স্থান এবং কোলন দ্বারা পৃথক করা উচিত। কোনো সমস্যা ব্যবহার করে, অনুমোদিত নয় বিশেষত পেয়ে ওয়েব থেকে ফলাফল হল না অনুমোদিত।

শুভকামনা :)


3
স্যান্ডবক্সে উল্লেখ করতে ভুলে গেছেন: এটি প্রমাণ করা সহজ 2এবং 3একমাত্র প্রাইমস pযার জন্য উভয়ই 2p-1এবং 2p+1প্রাইমস, তাই 2একমাত্র প্রাইম যা উভয় প্রকারের অ-তুচ্ছ কানিংহাম চেইন শুরু করে
পিটার টেলর

ঠিক আছে. আপনার সহায়তার জন্য ধন্যবাদ:)
Cabbie407

3
(উত্তর থেকে রূপান্তরিত মন্তব্য।) আছে না কোনো ছাড়া অন্য মৌলিক 2চেয়ে 1. একটি দ্বৈত শৃঙ্খল দৈর্ঘ্য বৃহত্তর সঙ্গে এখানে বর্জন দ্বারা প্রমাণ।
pbeentje

ওয়েল যে আবার এই জাতীয় বিবরণ মধ্যে নির্দেশ করার জন্য ধন্যবাদ। আপনি কি কেবল এটি মন্তব্য করতে চেয়েছিলেন বা আপনি কি মনে করেন এর কারণে আমার কোনওভাবে চ্যালেঞ্জটি পরিবর্তন করা উচিত?
Cabbie407

কেবল একটি মন্তব্য। আমি মনে করি না যে এটি কোনও ক্ষেত্রেই চ্যালেঞ্জকে পরিবর্তন করে, গল্ফিংয়ের জন্য কেবলমাত্র সম্ভাব্য সহায়ক: যখন একটি চেইন পাওয়া যায়, অন্যটিকে পরীক্ষা করার প্রয়োজন হয় না।
pbeentje

উত্তর:


2

জাভাস্ক্রিপ্ট, 236 208 বাইট

28 বাইট সংরক্ষণ করা:

p=(n,i=n)=>n%--i?p(n,i):i==1;f=n=>{for(k=2,c=0;c<n;k++){p(k)&&!p((k-1)/2)&&p(2*k+1)&&(c++,l=1,r='');p(k)&&c-n&&!p((k+1)/2)&&p(2*k-1)&&(c++,l=-1,r='I');};alert(--k+` I${r}:`+eval(`for(j=1;p(k=2*k+l);j++);j`))}

সংরক্ষিত 9 বাইট pসঙ্গে ফাংশন: ফাংশন দ্বারা প্রতিস্থাপন করা হয়েছে এ বিবৃতি সরাসরি ফাংশন।p=(n,i=n)=>n%--i?p(n,i):i==1
teval(...)f


পূর্ববর্তী সমাধান:

p=n=>{for(i=n;n%--i&&i;);return 1==i};t=(n,m)=>{for(j=1;p(n=2*n+m);j++);return j};f=n=>{for(k=2,c=0;c<n;k++){p(k)&&!p((k-1)/2)&&p(2*k+1)&&(c++,l=1,r='');p(k)&&c-n&&!p((k+1)/2)&&p(2*k-1)&&(c++,l=-1,r='I');};alert(--k+` I${r}:${t(k,l)}`)}

উদাহরণ: f(6)

আউটপুট: 29 I:2

ব্যাখ্যা
আমি 3 টি ফাংশন ব্যবহার করছি

1 পি : এন প্রধান কিনা তা জানতে : p=n=>{for(i=n;n%--i&&i;);return 1==i}

2 টি : মি প্যারামিটার 1 বা -1 হবে তার উপর নির্ভর করে I বা II টাইপের n দিয়ে শুরু হওয়া কানিংহাম চেইনের দৈর্ঘ্য জানতে : t=(n,m)=>{for(j=1;p(n=2*n+m);j++);return j}

3 : চেইনগুলি গণনা করে ( লুপের জন্য ) তারপরে ফলাফলটি প্রদর্শন করুন

f=n=>{for(k=2,c=0;c<n;k++){p(k)&&!p((k-1)/2)&&p(2*k+1)&&(c++,l=1,r='');p(k)&&c-n&&!p((k+1)/2)&&p(2*k-1)&&(c++,l=-1,r='I');};alert(--k+` I${r}:${t(k,l)}`)}

লুপের জন্য : প্রতিটি সংখ্যার জন্য কানিংহাম চেইন (যদি প্রয়োজন হয় তবে আমি দ্বিতীয়) যদি বৈধ হয়

  • সংখ্যাটি প্রধান
  • পূর্বসূরীর প্রধান নয়
  • উত্তরসূরি প্রধান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.