ক্ষুদ্রতম অব্যবহৃত সংখ্যা একটি ফ্যাক্টর ভাগ করে নিচ্ছে


11

এটি মিল প্রশ্নের একটি চমত্কার রান। আমি একটি ক্রম সংজ্ঞায়িত করব এবং আপনি কোনও সূচকে দেওয়া এন্ট্রি আউটপুট করার জন্য কিছু কোড গল্ফ করুন।

  • অনুক্রমের প্রথম আইটেমটি 2।

  • অনুক্রমের নবম আইটেমটি n এবং 1 ব্যতীত ক্ষুদ্রতম ধনাত্মক পূর্ণসংখ্যা যা n (1 ব্যতীত) এর সাথে কমপক্ষে একটি ফ্যাক্টর ভাগ করে নিচ্ছে যা ইতিমধ্যে তালিকায় উপস্থিত হয়নি।

পরীক্ষার মামলা

অনুক্রমের প্রথম 25 টি আইটেম এখানে রয়েছে:

1  2
2  4
3  6
4  8
5  10
6  3
7  14
8  12
9  15
10 5
11 22
12 9
13 26
14 7
15 18
16 20
17 34
18 16
19 38
20 24
21 27
22 11
23 46
24 21
25 30

সম্পর্কিত (এক করে অফসেট) ওইআইএস

উত্তর:



3

পাইথন 3 , 118 117 বাইট

-1 বাইট ধন্যবাদ ক্যামেরন আভিককে !

import math
def f(n,i=3):
 if n<2:return 2
 while 1:
  if math.gcd(n,i)>1>(i in map(f,range(n)))<i!=n:return i
  i+=1

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

কোডটি বেশ অকার্যকর (এটি এমন একটি মানকে জোর করে তোলে যা পূর্ববর্তী ফলাফলগুলিতে বিদ্যমান না এবং প্রতিটি ফলাফলের উপরের ফলাফলগুলি আবার গণনা করে) তাই এটি সঠিকভাবে কাজ করে তবে আমি এটিকে বৃহত সংখ্যায় চালানোর পরামর্শ দেব না।


2
ছোট্ট টিপ: আপনি একটি নতুন লাইনটি তৈরি করে def f(n,i=3):এবং i=3লাইনটি সরিয়ে সংরক্ষণ করতে পারেন
ক্যামেরন আভিক


2

হাস্কেল , 60 59 বাইট

সম্পাদনা করুন:

  • -1 বাইট: @ এক্সনোর দেখানো all(/=x)চেয়ে কম ছিল x`notElem`

f একটি পূর্ণসংখ্যা নেয় এবং পূর্ণসংখ্যা ফেরত দেয়।

f n=[x|x<-[2..],gcd x n>1||n<2,all(/=x)$n:map f[1..n-1]]!!0

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

এটি খুব তাত্পর্যপূর্ণ সময়, তাই 21 এর পরে টিআইও বার হয়ে যায়, যখন আমার ব্যাখ্যা করা জিএইচসি 22 এখন পর্যন্ত বন্ধ করার আগে উঠে গেছে। নিম্নলিখিত 9 বাইট দীর্ঘ সংস্করণ একটি তালিকার মুখস্থ করা সহজেই হাজারে যায়:

f n=[x|x<-[2..],gcd x n>1||n<2,all(/=x)$n:take(n-1)l]!!0
l=f<$>[1..]

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

  • f nপরীক্ষার্থীদের উত্পন্ন করতে তালিকার বোঝাপড়া ব্যবহার করে x, প্রথম পাস করে দিয়েছিলেন !!0
  • gcd x n>1এটি পরীক্ষা করে xএবং nসাধারণ কারণ রয়েছে।
  • ||n<2n==1ফ্যাক্টর প্রয়োজনীয়তা থেকে ছাড় ।
  • all(/=x)$n:map f[1..n-1]চেকগুলি পূর্ববর্তী ক্রম উপাদান xনয় nবা নয় neither

@ ওয়েট উইজার্ড এইচএম, সম্ভবত এই ক্ষেত্রে কোনও পার্থক্য নেই। এটি ডিফল্টরূপে করতে অভ্যস্ত। এটি কয়েকটি অক্ষর সংক্রান্ত ফাংশনগুলির মধ্যে একটি যা সেই স্থানে ফিট করার জন্য স্থিরতা নির্ধারণ করে।
janর্জন জোহানসেন

1
all(/=x)$সেখানে 1 টি ছোট
xnor

2

সি # তে জিসিডির জন্য অন্তর্নির্মিত নেই, তাই ...

সি # (.নেট কোর) , 197 196 194 বাইট

n=>{if(n<2)return 2;var p=new int[n-1];int i=0,a,b;for(;i<n-1;)p[i]=f(++i);for(i=2;;i++)if(n!=i){for(a=n,b=i;a*b>0;)if(a>b)a%=b;else b%=a;if(b!=1&a!=1&!System.Array.Exists(p,e=>e==i))return i;}}

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

আবার, এর ক্রম অনুসারে সংখ্যা গণনা করতে এই কোডটি ব্যবহার করা থেকে বিরত থাকুন n>30...

  • whileলুপের জন্য জিসিডি লুপ পরিবর্তন করে -1 বাইট for
  • -2 বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ! সুন্দর!

1
a>0&b>0গল্ফ করা যেতে পারেa*b>0
কেভিন ক্রুইজসেন

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