11 ছাড়া Palindromic পুরষ্কার


14

এমনকি সংখ্যাসূচক সংখ্যার প্রতিটি প্যালিনড্রোম 11 দ্বারা বিভাজ্য, সুতরাং 11 একমাত্র সংখ্যক সংখ্যাসহ একমাত্র [প্যালিনড্রোমিক প্রাইম]। - ডেভিড ওয়াসারম্যান, ওইআইএস

আমি আজ এটি ম্যানুয়াল পদ্ধতিতে শিখেছি, আমার গবেষণা করার আগে, যখন প্যালিনড্রমিক প্রাইমগুলি গণনা করার সময় আমার প্রোগ্রামটি একটি সংখ্যাসূচক সংখ্যার (১১ টি বাদে) নম্বরগুলি এড়িয়ে যায়। আপনার টাস্ক: এমন একটি প্রোগ্রাম বা ফাংশন তৈরি করুন যা কোনও পূর্ণসংখ্যার ইনপুট এন দেওয়া হলে স্টিফেনের প্যালিনড্রমিক সিকোয়েন্সে নবম পদটি আউটপুট করে ™

স্টিফেনের প্যালিনড্রমিক সিকোয়েন্স ™

স্টিফেনের প্যালিন্ড্রোমিক সিকোয়েন্স 11 11 দিয়ে শুরু হয় এবং প্যালিনড্রমিকের সাথে অবিরত থাকে দ্বারা বিভাজ্য সেমিপ্রিমগুলি মূলত 11 টি "গণনা" না করলে সেমিপ্রিমগুলির সমস্তই প্রাইম হবে। উল্টোটি এই তালিকাটিতে সংখ্যার সমান সংখ্যক সংখ্যা রয়েছে! হ্যাঁ. এবং, একটি বিজোড় সংখ্যা সহ প্রচুর সংখ্যা এড়িয়ে চলেছে, কারণ তারা ইতিমধ্যে প্রধান ছিল।

অনুক্রমের শুরু:

1   : 11
2   : 22
3   : 33
4   : 55
5   : 77
6   : 121
7   : 737
8   : 979
9   : 1111
10  : 1441
11  : 1661
12  : 1991
13  : 3113
14  : 3223
15  : 3443
16  : 3883
17  : 7117
18  : 7447
19  : 7997
20  : 9119
21  : 9229
22  : 9449
23  : 10901

* যদিও 1331 (11 ^ 3) এবং অনুরূপ এই অনুক্রমের চেতনা ফিট করে, তারা বিধিগুলির সাথে খাপ খায় না।

দীর্ঘ পরীক্ষার কেস:

26  : 91619
31  : 103301
41  : 139931
51  : 173371
61  : 305503
71  : 355553
81  : 395593
91  : 725527
101 : 772277
127 : 997799
128 : 1099901
141 : 3190913
151 : 3739373
161 : 7589857
171 : 9460649
200 : 11744711
528 : 39988993

ইনপুট

পূর্ণসংখ্যা এন,> = 1. আপনি যদি নিজের উত্তরে সুনির্দিষ্ট করে থাকেন তবে আপনি 0-সূচিযুক্ত এন ব্যবহার করতে পারেন (পরীক্ষার কেসগুলি সামঞ্জস্য করতে নিশ্চিত হন)। চলমান নিউলাইনগুলি অনুমোদিত।

আউটপুট

স্টিফেনের প্যালিনড্রমিক সিকোয়েন্সে নবম পদ ™ চলমান নিউলাইনগুলি অনুমোদিত।

বিধি

  • আপনার প্রোগ্রাম / ফাংশনটি গ্রহণ করতে পারে এমন একমাত্র ইনপুটটি হ'ল এন Your আপনার প্রোগ্রাম, উদাহরণস্বরূপ, ওইআইএস থেকে ক্রম আনতে পারে না (ওরফে স্ট্যান্ডার্ড লুফোলস প্রযোজ্য )।
  • আপনি অবশ্যই ছয় অঙ্ক (এন = 127) পর্যন্ত একটি আউটপুট মুদ্রণ করতে সক্ষম হবেন। সময় কোনও ফ্যাক্টর নয় - তবে, যদি আপনার প্রোগ্রাম / ফাংশনটি খুব দীর্ঘ হয়ে যায়, আপনাকে অবশ্যই প্রমাণ করতে হবে যে অ্যালগরিদম কাজ করে। যদি আপনার ভাষা প্রাকৃতিকভাবে দীর্ঘ আউটপুটগুলিকে অনুমতি দেয় তবে এটিকে আপনি এটিকে স্বাভাবিকভাবেই তার সীমা পর্যন্ত প্রসারিত করতে বা আপনার পছন্দমতো দশ অঙ্কে ক্যাপ্ট করতে পারেন। আপনার সীমা ছাড়িয়ে আউটপুট / সমাপ্তি কোনও বিষয় নয়, যতক্ষণ না এটি বৈধ আউটপুট হিসাবে উপস্থিত হয় না।
  • অবৈধ ইনপুটটিতে প্রোগ্রাম / ফাংশন ফাংশন অপ্রাসঙ্গিক।


7
11 টি অন্তর্ভুক্ত করা উচিত? এটি সেমিপ্রাইম নয়।
xnor

1
@ xnor 11 ক্রমটির সূচনা হিসাবে সংজ্ঞায়িত করা হয়েছে। আপনি ঠিক বলেছেন যে এটি কোনও সেমিপ্রাইম নয়, তবে সংজ্ঞা অনুসারে 1 টি ফিবোনাচি সংখ্যা নয় :)
স্টিফেন

উত্তর:


9

জেলি , 18 13 বাইট

ṬÆẸש11ŒḂµ#ṛ®

কিছু কারণে, এটি একইভাবে করা সত্ত্বেও এটি আমার প্রাথমিক পুনর্বিবেচনার চেয়ে অনেক ধীর।

এটি অনলাইন চেষ্টা করুন!

এন = 127

dennis-home:~$ time jelly eun 'ṬÆẸש11ŒḂµ#ṛ®' <<< 127
997799

real    1m43.745s
user    1m43.676s
sys     0m0.113s

কিভাবে এটা কাজ করে

ṬÆẸש11ŒḂµ#ṛ®  Main link. No arguments.

         µ     Combine all links to the left into a chain.
          #    Read an integer n from STDIN and call the chain monadically, with
               argument k = 0, 1, 2, ... until n values of k result in a truthy
               output. Return the array of all matching values of k.
Ṭ                Untruth; yield [0, 0, 0, ..., 1] (k-1 zeroes followed by a 1) or
                 [] if k = 0.
 ÆẸ              Unexponents; consider the resulting array as exponents of the
                 sequence of primes and yield the corresponding integer. For k = 0,
                 this yields 1. For k > 0, it yields the k-th prime.
   ש11          Multiply the result by 11 and copy the product to the register.
       ŒḂ        Test if the product is a palindrome.
           ṛ®  Replace the resulting array with the integer in the register.

15

পাইথন 2 , 76 73 72 70 69 68 বাইট

n=input();c=k=m=11
while n:m*=k/c;k+=c;n-=`k`==`k`[::~m%k-c]
print k

@ বাইট উইজার্ডকে 3 বাইট বন্ধ করে দেওয়ার জন্য ধন্যবাদ!

1 বাইট বন্ধ করে গল্ফ করার জন্য @ grjanJohansen কে ধন্যবাদ!

@ Xnor এবং @ janrjanJohansen কে 68 বাইটের পথ প্রশস্ত করার জন্য ধন্যবাদ!

ইনপুট 0-সূচকযুক্ত। এটি অনলাইন চেষ্টা করুন! বা প্রথম 31 পরীক্ষার কেস যাচাই করুন

পটভূমি

স্মরণ করুন যে উইলসনের উপপাদ্যটি বলেছে যে সমস্ত পূর্ণসংখ্যার জন্য p> 1 ,

মানে যে (পি - 1)! + 1 পি দ্বারা সমানভাবে বিভাজ্য এবং যদি পি হয় তবেই প্রধান হয়।

যদি পি> 1 হয় না প্রধানমন্ত্রী, এটা যৌগিক হয়; দিন কুই ক্ষুদ্রতম মৌলিক গুণনীয়ক হতে পি । স্পষ্টতই, q ≤ p / q । দুটি মামলা রয়েছে:

  • যদি q = p / q হয় তবে আমাদের কাছে সেই পি = কিউ ²

    যদি Q = 2 , (পি - 1)! = 3! = 6 , তাই (পি - 1)! 2 মডুলো পি এর সম্মিলিত হয়

    যদি পি / কিউ = কি> 2 , তাই 2 কি <পি । এইভাবে, q এবং 2q উভয়ই 1,…, পি - 1 এর মধ্যে রয়েছে , যার পণ্য পি - 1 এর ফ্যাক্টরিয়াল , সুতরাং 2 পি = 2 কিউ = কিউ · 2 কিউ ভাগ করে (পি - 1)! সমানভাবে।

  • যদি Q <পি / কিউ , কি এবং পি / কিউ উভয়ই 1,…, পি - 1 এর মধ্যে থাকে তবে পি = কিউ · পি / কিউ বিভাজক (পি - 1) হয়! সমানভাবে।

সাতরে যাও,

সমস্ত পূর্ণসংখ্যার জন্য >> 1

এখন, সমস্ত সংখ্যক সমষ্টি এবং সমস্ত পূর্ণসংখ্যার জন্য , বি এবং সি , নীচের ধারন করে।

যখন একটি = -1 , খ = 11 , এবং সি = -1 হয় , আমরা এটি অনুসরণ করি

এবং, যেহেতু 21 এবং -23 একত্রে মডিউল 44 এবং -1 এবং 11p-1 একত্রিত মডিউল 11p , আমরা নিম্নলিখিত উপসংহারে পৌঁছেছি।

পি এর সমস্ত সম্ভাব্য মানগুলির জন্য , ফলাফল ( 11 , 21 , বা 11 পি - 1 ) 0,…, 11p - 1 এর মধ্যে চলে যাবে , সুতরাং এই মানগুলি পাইথনের দ্বারা ফিরে আসার সাথে মেলে% অপারেটরের ।

কিভাবে এটা কাজ করে

আমরা আরম্ভ , , এবং মি থেকে 11 ইনপুট সংরক্ষণ পর এন । প্রোগ্রামটি বাকি অংশের জন্য সি স্থির থাকবে। যেহেতু তিন ঘটনার হয় নিম্নলিখিত লাইনে এবং বরাদ্দ মাত্র দুটি বাইট খরচ, এই একটি বাইট পরিমাণ সঞ্চয় হয়। k পূর্ববর্তী অনুচ্ছেদ থেকে পি এর অর্থ ব্যবহার করে 11p ভাবা যেতে পারে ; প্রাথমিকভাবে, কে = 11 = 11 · 1! মি 11 এর স্থান নেয় (পি - 1)! ; প্রাথমিকভাবে, এম = 11 = 11 · 0! কে এবং এমm = 11 · (কে / 11) সম্পর্ক সন্তুষ্ট করবে ! সব সময়ে.

n আমাদের খুঁজে পেতে "স্টিফেনের প্যালিনড্রোমগুলি" সংখ্যার প্রতিনিধিত্ব করে। যেহেতু প্রথমদিকে k = 11 , আমরা আরও গুণে ছাড়াই k verbatim আউটপুট করতে পারি । যাইহোক, যখন এন ইতিবাচক হয়, আমরা সেই সময় লুপটি প্রবেশ করি। লুপ গুন দ্বারা আরম্ভ মি দ্বারা K / C = P , তারপর যোগ 11 থেকে , এইভাবে বৃদ্ধিশীল পি । যদি কে এই সিকোয়েন্সের সদস্য হয় তবে আমরা n থেকে 1 বিয়োগ করে আবার শুরু করব। এন একবার 0 এ পৌঁছানোর পরে আমরা সিকোয়েন্সের সদস্যটি পছন্দসই সূচকে খুঁজে পেয়েছি এবং লুপটি ভেঙে ফেলেছি, তারপরে এর শেষ মানটি মুদ্রণ করব । কে এর

মুখের ভাব

`k`==`k`[::~m%k-c]

প্রকৃত পরীক্ষাটি সম্পাদন করে এবং এর ফলাফল ( ক্রম সদস্যের জন্য সত্য / 1 , অন্যথায় 0 / মিথ্যা ) অন্যটি এন থেকে বিয়োগ করা হয় । পূর্বে দেখা গেছে, ~ এম% কে = (-ম - 1)% কে = (-11 · (পি - 1)! - 1)% 11 পি সমান 10 যদি পি , 21 যদি পি = 4 , এবং 11 পি - 1 > 43 যদি পি> 4 যৌগিক হয়। সুতরাং, সি = 11 বিয়োগের পরে , আমরা প্রাইম পি এর জন্য -1 এবং অন্যথায় 9 এর চেয়ে বড় ধনাত্মক পূর্ণসংখ্যা রেখেছি ।

প্রধানমন্ত্রী জন্য পি , ​`k`[::-1]আমাদের স্ট্রিং উপস্থাপনা দেয় বিপরীত অঙ্ক অর্ডার দিয়ে, তাই এটি তুলনা ​`k`​কিনা তা পরীক্ষা একটি যে শব্দ কবিতা প্রভৃতি উলটা করিয়া পড়িলেও একই থাকে হয়। যদি এটি হয় তবে সমস্ত শর্ত পূরণ হয় এবং কে একটি সিকোয়েন্স সদস্য। তবে, পি যদি প্রধান না হয় তবে বৃহত পরিসরের পদক্ষেপ এবং k এর সর্বদা একাধিক সংখ্যার অর্থ হ'ল এর অর্থ ​`k`[::-1]একই সংখ্যার অঙ্কের মতো ​`k`​হতে পারে না, এটির সমান হতে দিন।


4
আমার বলতে হবে, আপনার প্রাথমিকতা পরীক্ষাটি সত্যই উজ্জ্বল। আমি এই উত্তরের সাথে প্রতিযোগিতা করতে পারি না।
পোস্ট রক গার্ফ হান্টার

2
এই প্রতিশ্রুতিবদ্ধ তবে 121 এড়িয়ে যায়
xnor

@ এক্সনর একটি অতিরিক্ত বাইটের দামে 121 অন্তর্ভুক্ত করার জন্য পরিচালিত। ধন্যবাদ!
ডেনিস

8

ব্র্যাচল্যাগ , 17 বাইট

:I{11|ṗ×₁₁≜.↔}ᶠ⁽t

এটি অনলাইন চেষ্টা করুন!

এটি 1-সূচকযুক্ত।

ব্যাখ্যা

:I{          }ᶠ⁽t    Find the Input'th result of the following:
   11                  Output = 11
     |                 Or
          ≜.           Output is an integer…
      ṗ×₁₁             …which is the result of multiplying a prime by 11…
           .↔          …and Output reversed is still the Output

এই উত্তর সহ দুটি উপলব্ধি:

  • আমাকে এই সত্যটি ঠিক করতে হবে যে মেটাপ্রেডিকেটগুলিতে (সহ ) সুপারসক্রিপটি পাস করার কোনও ইনপুট না থাকলে কাজ করে না (যে কারণে আমাকে যুক্ত করতে হবে :I)।
  • আমার কোনও প্রিডিকেটের Nফলাফল পাওয়ার জন্য একটি মেটাপ্রেডিকেট যুক্ত করতে হবে (যা ব্যবহার ᶠ⁽tএবং পরিবর্তে উদাহরণস্বরূপ এড়ানো হবে ⁿ⁽)।

উভয় পরিবর্তন কার্যকর করা সেই উত্তরটি 14 বাইটে পরিণত করবে।


5

ম্যাথামেটিকাল, 65 60 বাইট

n=NextPrime;11Nest[n@#//.x_/;!PalindromeQ[11x]:>n@x&,1,#-1]&

সরাসরি প্রাইমগুলির মাধ্যমে আইট্রেটস ব্যবহার করে NextPrimeএবং 11 বার প্রাইম প্যালিনড্রোম কিনা তা যাচাই করে । এন = 528 পর্যন্ত কাজ করে । ফলাফল 528 এবং 529 পৃথক পৃথক 2 16 প্রাইম, যা পর্যায়ে //.পর্যাপ্ত সংখ্যক বিকল্পের চেষ্টা করতে ব্যর্থ হবে।


4

পাইথন 2 , 111 107 103 102 101 100 91 90 89 বাইট

ডেনিস আমাকে মারধর করেছে এখানে , তাই তার উত্তরটি দেখুন।

এই উত্তরটি শূন্য সূচকযুক্ত

n=input()
r=1
while n:r+=1;c=`r*11`;n-=all(r%x for x in range(2,r))*c==c[::-1]
print r*11

এটি অনলাইন চেষ্টা করুন!

এক বাইট গণিত জাঙ্কিকে ধন্যবাদ রক্ষা করেছে

ব্যাখ্যা

প্রথমে আমরা ইনপুট nনিই এবং এটিতে সেট করে আমরা একটি নতুন পরিবর্তনশীলও তৈরি করি r=1। আমরা rপ্যালিনড্রোমগুলি অনুসন্ধান করে গণনা করব যা একটি মৌলিক এবং ১১ এর পণ্য Eachn পর্যন্ত এটি 0 ছুঁয়েছে।

সুতরাং আমরা একটি লুপ শুরু:

while n:

প্রথম কাজটি আমরা করি ইনক্রিমেন্ট r

r+=1

আমরা cস্ট্রিং প্রতিনিধিত্ব হিসাবে একটি পরিবর্তনশীল পূর্বনির্ধারিতr*11

c=`r*11`

এখন আমরা হ্রাস করতে চাই আমরা nযদি এমন একটি সংখ্যা পেয়েছি। r*11প্যাটার্নটি মানানসইভাবে আমরা প্রতিনিধিত্ব করে এমন একটি বুলিয়ান বিয়োগ করব r। এটি যদি হয় তবে Falseআমরা শূন্যকে বিয়োগ করব এবং যদি এটি হয়True 1 টি বিয়োগ করবে।

বুলিয়ান গণনা করতে আমরা করি:

all(r%x for x in range(2,r))*c==c[::-1]

প্রথম অংশটি প্রধান allকিনা rতা নির্ধারণ করবে । ফলাফলটি cযদি rপ্রধান হয় তবে এটি কেবল হবে cতবে rএটি যৌগিক ""হলে খালি স্ট্রিংটি হবে। এরপরে আমরা এটির তুলনা করি c[::-1]যার বিপরীত c। যদি rপ্রধান হয় এবং cএকটি প্যালিনড্রোম হয় এটি হবেTrue , যদি হয় তবে ব্যর্থ হয় পুরো জিনিসটি মিথ্যা হিসাবে মূল্যায়ন করবে।

nশূন্য যখন আমরা সহজভাবে হয়print c

83 বাইট

এখানে একটি পুনরাবৃত্ত সমাধান রয়েছে যা সংক্ষিপ্ত হলেও দুর্ভাগ্যক্রমে চশমাগুলি পূরণ করে না কারণ এটি পাইথনের পুনরাবৃত্তি ক্যাপটি খুব দ্রুত হিট করে।

f=lambda n,r=1:n and f(n-all(r%x*(`r*11`==`r*11`[::-1])for x in range(2,r)),r+1)+11

এটি অনলাইন চেষ্টা করুন!



3

হাস্কেল , 94 90 বাইট

h#n|n<2=0|mod n h<1=1+h#div n h|j<-h+1=j#n
([n|n<-[0,11..],(==)=<<reverse$show n,3>2#n]!!)

এটি অনলাইন চেষ্টা করুন! উদাহরণ ব্যবহার: ([n|n<-[0,11..],(==)=<<reverse$show n,3>2#n]!!) 127

[0,11..]অসীম তালিকা তৈরি করে [0,11,22,33, ...](1-ইনডেক্সেড সিকোয়েন্সটি তৈরি করতে শূন্যের প্রয়োজন হয়)। nএই তালিকার প্রত্যেকটির জন্য আমরা যাচাই n==(read.reverse.show)nকরে দেখি যে nপ্যালিনড্রোম কিনা । সর্বাধিক দুটি প্রধান বিভাজক আছে 3>2#nকিনা nতা পরীক্ষা করে । যেহেতু nসর্বদা 11 দ্বারা বিভাজ্য, তাই আমরা কোনও আসল প্রাইম পাই না কেবল সেমিপ্রাইমগুলি।

সম্পাদনা: 4 বাইট গল্ফ করার জন্য janrjan জোহানসেনকে ধন্যবাদ!


আপনার চারপাশে প্রথম বন্ধনী প্রয়োজন নেই div n h। এছাড়াও, এটি কেবল দক্ষতার উপর প্রভাব ফেলে তবে প্রথমটি 2#সম্ভবত এটিই হতে পারে h#
janrjan জোহানসেন

(==)=<<reverse$show nখাটো হয়।
janrjan জোহানসেন

2

পিএইচপি, 82 বাইট

for(;$d<$argn;$i>1||($p=11*$n)!=strrev($p)?:$d++)for($i=++$n;--$i&&$n%$i;);echo$p;

এটি অনলাইন চেষ্টা করুন!


"এটি অনলাইনে চেষ্টা করুন" তে আমাকে কোথায় ইনপুট লিখতে হবে? যদি আমি "ইনপুট" বাক্সে 1 লিখি তা 395593
রোজলুপি

@ রোসলুপি সাধারণত এটি কমান্ড লাইন থেকে -R বিকল্পের সাথে চলে। অনলাইন সংস্করণে আপনার সীমা রয়েছে এবং $argn=81;এটি ইনপুট ভেরিয়েবল যা কমান্ড লাইনের সংস্করণে পাওয়া যায়
Jgrg Hülsermann

সুতরাং একটিতে কেবল "$ argn = 81" এ ইনপুট ভেরিয়েবল লিখতে হবে সুতরাং উদাহরণস্বরূপ যদি ইনপুট 10 হয় তবে এটি পুনরায় লিখুন "$ argn = 10" ঠিক আছে, আপনাকে ধন্যবাদ
রোজলুপ

@ রোসলুপ হ্যাঁ আপনার পছন্দ অনুযায়ী ইনপুটটি দিয়ে 81 নম্বরটি প্রতিস্থাপন করুন
জার্গ হালসারম্যান

1

এক্সিয়াম, 105 বাইট

g(n)==(i:=c:=1;repeat(c=n=>break;i:=i+1;if(prime? i)then(x:=(11*i)::String;x=reverse(x)=>(c:=c+1)));i*11)

উনলগ্ফ, পরীক্ষার কোড এবং ফলাফল

f(n)==
   i:=c:=1
   repeat
      c=n=>break
      i:=i+1
      if(prime? i)then(x:=(11*i)::String;x=reverse(x)=>(c:=c+1))
   i*11


(5) -> [[i,g(i)]  for i in 1..23]
   (5)
   [[1,11], [2,22], [3,33], [4,55], [5,77], [6,121], [7,737], [8,979],
    [9,1111], [10,1441], [11,1661], [12,1991], [13,3113], [14,3223], [15,3443],
    [16,3883], [17,7117], [18,7447], [19,7997], [20,9119], [21,9229],
    [22,9449], [23,10901]]
                                          Type: List List PositiveInteger
(6) -> [[i,g(i)]  for i in [26,31,41,101,151,200]]
   (6)
   [[26,91619], [31,103301], [41,139931], [101,772277], [151,3739373],
    [200,11744711]]

এখানে g (700) = 92511529 সুতরাং সীমাটি হবে 700>; ww (1000) = 703999307 তবে নেক্সটপ্রিম ব্যবহার করে ()

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