কোনও সংরক্ষিত শব্দ ব্যবহার না করে প্রথম 128 টি প্রাথমিক সংখ্যা মুদ্রণ করুন


13

সুস্পষ্ট সমাধানটি কেবল স্ট্রিং হিসাবে এগুলি মুদ্রণ করা হবে তবে একটি সংক্ষিপ্ত কোড লেখা কি সম্ভব?

প্রয়োজনীয়তা:

  1. কোনও ইনপুট প্রক্রিয়া করা উচিত নয়, এবং আউটপুট 2 3 5 7 11 13 ...ইত্যাদি আকারে হওয়া উচিত
  2. ভাষার কোনও সংরক্ষিত শব্দ ব্যবহার করা হয় না
  3. ভাষাটি কমপক্ষে কাঠামোগত প্রোগ্রামিংয়ের অনুমতি দেওয়া উচিত এবং এতে সংরক্ষিত শব্দ থাকতে হবে (অন্যথায় পয়েন্ট 2 মোটা হবে)।

প্রথমে আমি একচেটিয়াভাবে সি / সি ++ রেখেছিলাম, তবে প্রতারণা রোধ করার চেষ্টা করার পরেও প্রশ্নটি প্রসারিত করেছি


1
দুর্ভাগ্যক্রমে আমার জন্য, টিসিএলের কোনও সংরক্ষিত শব্দ নেই।
জোহানেস কুহ্ন

উত্তর:


14

সি, 60 টি অক্ষর

"কোনও কীওয়ার্ড" সীমাবদ্ধতা এখানে গুরুত্বপূর্ণ নয়। আমি নিশ্চিত যে এটির উন্নতি, সম্ভব হলে কীওয়ার্ড যুক্ত করে করা হবে না I'm

n=2;main(m){n<720&&main(m<2?printf("%d ",n),n:n%m?m-1:n++);}

বিকল্প সংস্করণ:
আউটপুটটি এত সুন্দর নয়, তবে আমি printfঅপব্যবহারটি পছন্দ করি ।

n=2;main(m){n<720&&main(m<2?printf("%*d",n,n):n%m?m-1:n++);}

উভয় সমাধানের কৌশলটি হ'ল দুটি লুপকে (পুনরাবৃত্তির মাধ্যমে প্রয়োগ করা) একটিকে একীভূত করা।
nপরবর্তী সম্ভাব্য প্রধান, mপরবর্তী সম্ভাব্য বিভাজক।
প্রতিটি পুনরাবৃত্তির কলে, আমরা হয় বাড়া n( mতার আগের মান সেট করার সময় ) বা হ্রাস m


7

পাইথন, 108 টি অক্ষর

পাইথন এই চ্যালেঞ্জের জন্য তৈরি করা হয়নি। চান print? এটি সংরক্ষিত আচ্ছা, আমরা কীভাবে ব্যবহার করব stdout? ঠিক আছে, importএটির জন্য একটি ব্যয় হবে ... আপনি এটি অনুমান করেছিলেন, সংরক্ষিত। ঠিক আছে ... আমি ইউনিক্সে আছি, তাই আমি ফাইল বিবরণী 1 খুলতে পারি, যা স্টাডআউট বলে। টাট্টু!

মানুষ, এবং পুনরাবৃত্তি? কিছুই না eval। অবশ্যই কোনও লুপ নেই, তবে আমরা defবা এর সাথে কোনও ফাংশনও সংজ্ঞায়িত করতে পারি না lambda। এবং আঘাতের জন্য অপমান যোগ করার জন্য, আমরা এমনকি তালিকা বোধগম্যতা ব্যবহার করতে পারি না! map(p.__mod__,...)কোড গল্ফের মতো জিনিসগুলি ব্যবহার করার জন্য আমি সবসময় একটি অজুহাত খুঁজছি ... বোধগম্যতা সর্বদা ভাল। এখন অবধি, তা।

p=1
eval(compile("p+=1;open('/dev/fd/1','w').write('%s '%p*all(map(p.__mod__,range(2,p))));"*720,'','exec'))

এখন, আপনি অভিযোগ হতে পারে execএকটি শব্দ নয়, যদিও আমি শব্দ ব্যবহার করেননি (আমি এমনকি না evalএকটি exec)। ভাল, এখানে একটি 117-চরিত্রের সমাধান যা ব্যবহার করে না 'exec'

p=2
s="eval('('+s*(p<720)+')',open('/dev/fd/1','w').write('%s '%p*all(map(p.__mod__,range(2,p)))),{'p':p+1})";eval(s)

1
পাইথন 3 এ মুদ্রণ সংরক্ষিত নেই :) আপনি ব্যবহার করতে পারেন __import__, তবে
এটির জন্য

6

জাভাস্ক্রিপ্ট (৮০ টি চর)

eval((s=Array(719)).join("s[j=++n]?j:"+s.join("s[j+=n]=")+"r+=n+' ';"),r="",n=1)

আপনার ওয়েব ব্রাউজারের কনসোল চালান।

একটি প্রাইম চালনী ব্যবহার করা হয়েছে, যা খুব ঘনীভূত হতে পারে।


4

সি, 183 অক্ষর

#define q j*j<k?i%p[j++]||(i++,j=0):printf("%d\n",p[j=0,k++]=i++)
#define A q;q;q;q;q;q;q;q
#define B A;A;A;A;A;A;A;A
#define C B;B;B;B;B;B;B
main(){int i=2,j=0,k=0,p[999];C;C;C;C;C;}

ভাল, এখানে একটি প্রথম প্রথম চেষ্টা করা হয়েছে। আমি বিশ্বাস করি এটির প্রয়োজনীয়তাগুলি পূরণ করা উচিত। আমি প্রাইমগুলি সনাক্ত করতে সাধারণ ট্রায়াল বিভাগ ব্যবহার করছি এবং প্রিপ্রসেসর ব্যবহার করে এটি নির্মাণের জন্য একটি অনিবন্ধিত লুপ তৈরি করেছি যতক্ষণ না আমি তাদের পর্যাপ্ত পরিমাণ খুঁজে পেয়েছি। পুনরাবৃত্তির সংখ্যা টুইট করা হয়েছে যাতে সঠিকভাবে 128 টি মুদ্রিত হয়।


4

সি, 87 অক্ষর

d;p(n){--d<2||n%d&&p(n);}r(n){p(d=n);d<2&&printf("%d\n",n);++n<720&&r(n);}main(){r(2);}

(আমি এটিকে আরও কার্যকরী শৈলীতে লেখার চেষ্টা করেছি, তবে returnএই পরিকল্পনাটিকে হত্যা করার মতো ধরণের ব্যবহারে আমার অক্ষমতা )


3

সি, 134 অক্ষর

এখানে একটি বিকল্প সমাধান রয়েছে যা শব্দগুলি যতটা সম্ভব সংরক্ষণ করা বা অন্যথায় ব্যবহার করা এড়ানোর চেষ্টা করে:

main(i){i<9?main(2953216):i>4097?--i&4094?i/4096%(i%4096)?main(i):
main((i/4096-1)*4097):printf("%d\n",i>>12,main((i/4096-1)*4097)):0;}

এটি সমস্ত ব্যবহার করে printfএবং mainএকক যুক্তি দিয়ে।


3

গণিত 50 অক্ষর

আমি গণিতের জন্য "সংরক্ষিত শব্দগুলি" কীভাবে ব্যাখ্যা করব তা নিশ্চিত নই তবে আমি খেলতে চাই তাই আমি আঞ্চলিক কার্য সম্পাদন না করে প্রাইমালিটি পরীক্ষা করতে বা প্রাথমিকতার জন্য পরীক্ষা করতে চাই।

Fold[#2Cases[#/#2,1|_Rational]&,#,#]&@Range[2,719]

2

হাস্কেল, 72 টি অক্ষর

main=putStrLn.unwords$take 128[show p|p<-[2..],all((>0).mod p)[2..p-1]]

স্বীকার করা, কীওয়ার্ডগুলি এড়িয়ে যাওয়া হাস্কেলের পক্ষে খুব বেশি কঠিন নয়।


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