আউটপুট পিপিসিজি প্রাইম


69

এটি পিপিসিজি প্রাইম

624 অঙ্ক দীর্ঘ

777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777111111111111111111111111111111111111111111111111111111111111111111111111111111188888888118888888811188888811188888811188111118818811111881881111881881111881188111118818811111881881111111881111111188888888118888888811881111111881118888188111111118811111111881111111881111881188111111118811111111881111881881111881188111111118811111111188888811188888811111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333



আমরা যদি প্রতি 39 টি সংখ্যাকে বিভক্ত করি তবে

777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
111111111111111111111111111111111111111
111111111111111111111111111111111111111
188888888118888888811188888811188888811
188111118818811111881881111881881111881
188111118818811111881881111111881111111
188888888118888888811881111111881118888
188111111118811111111881111111881111881
188111111118811111111881111881881111881
188111111118811111111188888811188888811
111111111111111111111111111111111111111
111111111111111111111111111111111111111
333333333333333333333333333333333333333

আপনার কাজটি পিপিসিজি-প্রাইমকে আউটপুট করা

এটি । বাইটের মধ্যে সংক্ষিপ্ত কোড ins

যদি আপনি নীচে গাণিতিক ফাংশনে পিপিসিজি-প্রাইম ইনপুট করেন তবে আপনি এই ফলাফলটি পাবেন

ArrayPlot@Partition[IntegerDigits@#,39]&   

এখানে চিত্র বর্ণনা লিখুন


37
পৃথিবীতে আপনি এটি কীভাবে পেলেন?
স্টিভি গ্রিফিন

5
@ স্টেভিগ্রিফিন কোনও সংখ্যার প্রাথমিক nহওয়ার সম্ভাবনা গড়ের তুলনামূলক 1/log(n), যাইহোক, খুব কম নয়। এটি প্রাইম হওয়া পর্যন্ত কেবল প্রচুর সংখ্যা পরীক্ষা করে দেখুন।
ব্যবহারকারী 202729

2
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ডেনিস

1
@20202729 এই ক্ষেত্রে log(n)প্রায় 1436.6
জেপ্পে স্টিগ

3
@ ফ্যাবিয়ান আমি এই পদ্ধতিটি দক্ষ হবে বলে মনে করি না ... প্রধানত এই বড় (624 ডিজিট) এর জন্য, আপনি যে সংখ্যাটি জিজ্ঞাসা করছেন তার সংখ্যা 621 ডিজিট (এবং গল্ফ করা আরও কঠিন), যদি না এটি 10 ​​^ 621 তম হয় প্রধান!!! আপনি যদি নিজের নম্বরটি সন্ধান করতে চান তবে এখানে x/logxগাউসের একটি সাধারণ আনুমানিক

উত্তর:


22

জেলি , 55 54 52 47 46 বাইট

“=÷¡v⁺ʋiṂYR¤"bİɲ}Ñ1Ṇ⁴ẠV⁹yȥGẇ’“¿mŻ“p’Dx39jBo88V

পুনর্বিবেচনার ইতিহাসে আরও সংশ্লেষিত পন্থা রয়েছে তবে এই সাধারণটি তাদের সকলকে পরাজিত করে।

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

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

“=÷¡v⁺ʋiṂYR¤"bİɲ}Ñ1Ṇ⁴ẠV⁹yȥGẇ’

এটি একটি সাংখ্যিক আক্ষরিক, বাইজিক বেস 250 এ এনকোডড, যেখানে জেলির কোড পৃষ্ঠা থেকে অঙ্কগুলি নেওয়া হয়েছে। শৃঙ্খলের (বাম) যুক্তি এবং প্রত্যাবর্তনের মানটি
এনকোডড পূর্ণসংখ্যায় সেট করা হয়েছে, n: = 0x21871c77d7d7af6fafafeff0c37f72ff7fbfbdbfdfef5edfeff8e3

“¿mŻ“p’

উপরের একটির মতো একই আক্ষরিক, তবে দ্বিতীয়টি দুটি এনকোডড পূর্ণসংখ্যা পৃথক করে। ফেরতের মান এনকোডড অ্যারে, [777711, 113] এর সাথে প্রতিস্থাপন করা হয় ।

Dx39

Dরিটার্ন মানকে দশমিক ( [[7, 7, 7, 7, 1, 1], [1, 1, 3]] ) x39রূপান্তর করে , তারপরে ফলাফলের প্রতিটি পৃথক পূর্ণসংখ্যা / সংখ্যা পুনরাবৃত্তি করে 39 বার। এটি এক জোড়া অ্যারে দেয়, যা যথাক্রমে 7-বর্ণের উচ্চতর পাঠ্যের আগে এবং পরে অঙ্কগুলি থাকে। এর এই অ্যারের কল করা যাক একটি

jB

প্রথমে B(বাম) আর্গুমেন্ট n কে বাইনারি রূপান্তর করে । এই সংখ্যার 7-চরিত্র উচ্চ পাঠ্য, যেখানে প্রতিটি গঠন উৎপাদ 88 দ্বারা প্রতিস্থাপিত হয়েছে 0

তারপরে, বাইনারি অ্যারেটিকে বিভাজক হিসাবে ব্যবহার jকরে অ্যারে A তে যোগ দেয় ।

o88

এটি 88 এর সাথে লজিক্যাল ওআর সম্পাদন করে , প্রতিটি 0 কে 88 এর সাথে প্রতিস্থাপন করে ।

V

আমাদের কাছে এখন সঠিক সংখ্যা রয়েছে তবে 7 's, 1 ' s, 88 's এবং 3 ' এর অ্যারেতে । Vস্পষ্টতই এই অ্যারেটিকে একটি স্ট্রিংয়ে পরিণত করে এবং তারপরে এটি সজ্জিত করে, একটি একক পূর্ণসংখ্যার ফলন দেয়।



6

এসওজিএল ভি0.12 , 52 51 বাইট

≡=vā⁷H↕↕jΥ_Ν↑∆∫▲pΖo	‘θδžΟwd╬2n?q[‘²Κ7n⌡"α¼■╤ģ⅞¹‘¹H∑

বুদবুদ টাই!
মনে রাখবেন যে এই উত্তরে একটি ট্যাব রয়েছে

এখানে চেষ্টা করুন!

উভয় এস এর জন্য একই স্ট্রিংটিকে পুনরায় ব্যবহার করে বাইটস সংরক্ষণের চেষ্টা করে P

ব্যাখ্যা:

...‘...‘²Κ7n⌡"..‘¹H∑  compressed strings replaced with ellipses to shorten the width
...‘                  pushes "1111111188888188888888111118811111881111188111118881118818111811111111188888188888888111118811111881111188118118888818818881811118111" - CG
    ...‘              pushes "1111111888888888888881118118111811811181181118118111811811188881111881" - P
        ²             join with itself - double the P
         Κ            reverse add - prepend the PP to CG
          7n          split to line lengths of 7
            ⌡         for each
             "..‘       push "311ŗ117777" with ŗ replaced with the ToS - current item looping over
                 ¹    wrap the results tn an array
                  H   rotate it counter-clockwise
                   ∑  join to a single string

মূল সংখ্যাটি নীচে বাম দিকে শুরু করে, উপরে গিয়ে 1 ডান এবং নীচে, তারপরে উপরে, ect হিসাবে সেখানকার সংখ্যাগুলি সংরক্ষণ করা হয়।

একটি 52 বাইট প্লেইন সংক্ষেপণ সংস্করণ:

#⅓→9E■Ν►1&⅝θ⅞%øøμ←N═]y)u⅝↓$A○░(ZF16Φ⅓Mč▓d⅛Hι‼∑υnη▲Z‘

এখানে চেষ্টা করুন!


আমি নিশ্চিত নই যে আপনি যা পোস্ট করেছেন তা যদি সঠিক কোড হয় তবে ...
এরিক দ্য আউটগল্ফার

1
কিভাবে ...‘এই নম্বর পেতে?
পিওরফেরেট

1
টুইটারে
সম্পূর্ণরূপে

@ টোটালিহুমান সুতরাং এটি কীভাবে 'এনকোড' করবে / এই স্ট্রিংগুলিকে সংকুচিত করে ...‘?
পিউরিফেরেট

@জাইমা আমার মনে হয় না যে দুর্ভাগ্যক্রমে এটি আসলে আমাকে বুঝতে সহায়তা করে। প্রথম অংশটি প্রবেশ করে যা CGসেই সরঞ্জামটির মধ্যে এনকোড থাকে that সরঞ্জামটির ...‘কোথাও দেয় না ।
পিউরিফেরেট

4

গণিত, 107 বাইট

Uncompress@"1:eJxTTMoP8ixgYmAwH8TAkLrAAgqQWYbYGFDVGCxkBh5lCDNwWIqqDCyGrAGDhWEpFmXY3IaiDItPqQqMiQMA+yaAoA=="


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


আমি ভুল হলে আমাকে সংশোধন করুন, তবে এটি কি কেবলমাত্র একটি REPL- সমাধান? এটি কোনও ফাংশন বলে মনে হচ্ছে না (যা আমি অনুমান করছি যে আপনি &শেষের দিকে কোনও একক দিয়ে ঠিক করতে পারেন )।
নম্বরমানিয়াক

এটি কোনও ফাংশন হওয়ার কথা নয়। এই কোডটি কেবল পিপিসিজি প্রাইমকে আউটপুট দেয়, ঠিক যেমন ওপি জিজ্ঞাসা করেছিল
J42161217

4

সিজাম, এএসসিআইআই, 61

Hs78f*~_@"'hfv;HH`>O4RU(_o^.U)9q&-1iadr`4tk"90b2b88fe|1$'339*

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

]s39/N*সুন্দর মোড়কের জন্য যুক্ত করুন ।

ব্যাখ্যা:

Hs         generate "17" (H=17)
78f*       repeat each character 78 times, getting an array of 2 strings
~_         dump the 2 strings on the stack, and duplicate the '7's
@          move the '1's to the top of the stack (first 6 lines done so far)
"…"90b     convert that string from base 90 (treating characters as numbers)
2b         convert the resulting number to base 2,
            obtaining a bit map for the "PPCG" part, with 1 for "1" and 0 for "88"
88fe|      replace (boolean OR) all the zeros with 88
1$         copy the string of 78 '1's
'339*      repeat '3' 39 times

4

সি, 519 427 414 396 377 বাইট

তাস, ফেলিক্স প্যালম্যান এবং লিনকে ধন্যবাদ।

#define p(n,l)for(i=40*l;i;)putchar(--i%40?n+48:10);
f(i){p(7,4)p(1,2)puts("188888888118888888811188888811188888811\n188111118818811111881881111881881111881\n188111118818811111881881111111881111111\n188888888118888888811881111111881118888\n188111111118811111111881111111881111881\n188111111118811111111881111881881111881\n188111111118811111111188888811188888811");p(1,2)p(3,1)}

আপনার আগ্রহের জন্য, এখানে একটি দীর্ঘ, পড়ার সহজ-সহজ সংস্করণ:

#define p(n,l) for(i=40*l;i;) putchar(--i%40?n+48:10);
f(i) {
    p(7,4)
    p(1,2)
    puts("188888888118888888811188888811188888811\n\
       188111118818811111881881111881881111881\n\
       188111118818811111881881111111881111111\n\
       188888888118888888811881111111881118888\n\
       188111111118811111111881111111881111881\n\
       188111111118811111111881111881881111881\n\
       188111111118811111111188888811188888811");
    p(1,2)
    p(3,1)
}

1
আপনি কেবল 1s এবং 8 এর দশকে মুদ্রণ করে এবং 7, 3 এবং 1 এর জন্য একটি সংজ্ঞা দিয়ে - অনেকগুলি কম (450ish ডলার) পেতে পারেন
তাস

@ কেয়ু গান: আমি জিসিসির একটি বর্তমান সংস্করণ (.2.২.০-ডিবিয়ান ১১) সংকলন করছি, যা কয়েক বছরের জন্য এটির অনুমতি দেয়। সিনট্যাক্সটি সম্ভবত নতুন সি স্ট্যান্ডার্ডগুলির মধ্যে একটিতে রয়েছে কিনা তা আমি নিশ্চিত নই।
xanoetux

2
@ কেয়ু গান: এটি C99 এবং C11 এ অনুমোদিত।
xanoetux


এই সংস্করণটি খুব জটিল। কমপক্ষে আমি এটি বুঝতে পারি; ধন্যবাদ।
xanoetux

4

জাভা (ওপেনজেডিকে 8) , 165 বাইট

n->{for(int i=0;++i<566;)System.out.print(i<157?7:i>526?3:i<236|i>446||new java.math.BigInteger("vnku5g6l0zenpa1kydel5rxw162k4fk4xapa154o",36).testBit(446-i)?1:88);}

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

ক্রেডিট

  • -১০ বাইট ধন্যবাদ আদিতুকে!

165:n->{for(int i=0;++i<566;)System.out.print(i<157?7:i>526?3:i<236|i>446||new java.math.BigInteger("vnku5g6l0zenpa1kydel5rxw162k4fk4xapa154o",36).testBit(446-i)?1:88);}
aditsu

দুর্দান্ত ক্যাচ, ডাবল 88, ধন্যবাদ!
অলিভিয়ার


2

ব্যাচ, 364 335 333 বাইট

@set a=888888&set b=1111111111111&set e=1881111&set d=1%e%&set f=333333333&for /L %%x in (1,1,156) do @cd|set/p=7
@echo %b%%b%%b%%b%%b%%b%1%a%8811%a%88111%a%111%a%1%d%188%e%188%e%88%e%88%d%188%e%188%e%1%d%1111%a%8811%a%88%d%111881118888%e%11%d%11%d%1%d%88%d%11%d%11%d%88%e%88%d%11%d%11111%a%111%a%%b%%b%%b%%b%%b%%b%11%f%%f%%f%%f%333

1
পরিবর্তন করে দুই বাইট সংরক্ষণ echo|করতেcd|
stevefestl

ধন্যবাদ, আমি জানতাম যে এখানে আরও কিছু ছোট ছিল, তবে মনে করতে পারিনি
schnaader

এছাড়াও, (1,1,156) doএটিকে সংক্ষিপ্ত করা যেতে পারে(1,1,156)do
স্টিভেফস্টেল

2

জাভাস্ক্রিপ্ট (ES6), 187 181 বাইট

-6 বাইটস @ জাস্টিনমারিনারে ধন্যবাদ

r=s=>s[0].repeat(39),a=r`7`,b=r`1`,i="8888881",c=188+i,d=11+i,j="188111",e=j+1188,f=j+188,g=j+111,h=g+1,k=r`3`
z=>"aaaabbccdd1eeff1eeghccgj8888hhgf1hhff1hhdd1bbk".replace(/./g,eval)

সুপার সহজ পদ্ধতির; এটি সম্ভবত আরও কিছু গল্ফ করা যেতে পারে।

ব্যাখ্যা

r=s=>s[0].repeat(39),                               // helper function to repeat character
a=r`7`,b=r`1`,i="8888881",c=188+i,d=11+i,j="188111",// Set the variables (a-k) to different
e=j+1188,f=j+188,g=j+111,h=g+1,k=r`3`               // parts of the prime       

_=>"aaaabbccdd1eeff1eeghccgj8888hhgf1hhff1hhdd1bbk" // Replace all letters in the string
    .replace(/./g,eval)                             // with the value of the variable

উদাহরণ কোড স্নিপেট (আউটপুটটিতে লাইন ব্রেক যোগ করতে কিছু সহায়ক কোড সহ)


আপনি একটি সাহায্যকারী ফাংশন নির্ধারণ আপনি কিছু বাইট সংরক্ষণ করতে পারবেন rযেমন r=s=>s[0].repeat(39)এবং তারপর প্রতিস্থাপন a, bএবং kসঙ্গে r`7` ইত্যাদি অনলাইনে চেষ্টা করুন!
জাস্টিন মেরিনার 21

2

সি (জিসিসি) , 269 267 বাইট

ফাংশন, সাধারণ আরএলই ব্যবহার করে।

x[]={39,79,80,156};k;f(i){for(char*c="d7b1882188316831683128512811285128112841281128412821285128112851281128712881882188212871283148112881288128712841282128812881284128112841282128812891683168c1a3";i=*c++;++c)for(i=i<97?i-48:x[i-97];i--;++k%39||puts(""))putchar(*c);}

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


সুপারিশ L"'OP\x9c"পরিবর্তেx
ceilingcat

2

সি (জিসিসি) , 224 বাইট

f(i,j,c){for(i=0;c="wwdfFdfFDfFDfFDFDDFFDDFFDddDDFdDDddDDddDDDdDDDDffDffDFDDDFDfdDDDDFDDDdDDDdDDFdDDDDFDDDdDDFFDdDFDDDdDDDDdfDdfD"[i/2]>>i++%2*4&15;c-6?putchar(c-4?c+48:49):printf("88"))for(j=0;j++<c%2*38;)putchar(c+48);}

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

কিছু অপ্রিন্টেবল রয়েছে, স্ট্রিংটি আক্ষরিক "ww\x11dfFdfFDfFDfFDFDDFFDDFFDddDDFdDDddDDddDDDdDDDDffDffDFDDDFDfdDDDDFDDDdDDDdDDFdDDDDFDDDdDDFFDdDFDDDdDDDDdfDdfD\x11\x03"


1

জেলি , 86 বাইট

Lẋ@1,8żḣLẋ/€F
7ẋ156;1ẋ78¤©;“½Ẹ^o“2FẒ⁶ġbȥ“¡E⁷£cṿ“t¡ɗḋ“£F¢Xȥ“¡McṾbȥ“¬3Ṭo’DÇ€F¤;®;3rẋ39¤Ḍ

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

-12 বাইট ব্যবহারকারী 202729 ধন্যবাদ


88 বাইট: Tio ( যা করতে পারেন separates a list of strings inside a string literal)
user202729

তোমার দেশে এখন কটা বাজে? আপনি এখনই জাগ্রত কেন?
ব্যবহারকারী 202729

@ ব্যবহারকারী 202729 ওহ ঠিক আছে, ধন্যবাদ। এবং আমি ইউটিসি -4 এ আছি আমি বোকা বানিয়েছি এবং দেরি করে উঠে থাকতে হয়েছিলাম তাই ঘুমানোর আগে চ্যালেঞ্জ করার মতো মনে হয়েছিল কারণ এটি আবার খোলা রয়েছে। আপনি চাইলে আমি
আড্ডায়

1

পাইথন 2 , 309 158 155 136 135 বাইট

x='1'*78
s='7'*156+x
a=1
for c in str(int('109PDKEZ3U32K97KJQVELW8GKXCD42EGEYK715B6HPMPL0H8RU',36)):s+=`a`*int(c);a^=9
print s+x+'3'*39

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

পাইথন 2 , 137 বাইট

s='7'*156
a=1
for c in'90'*8+str(int('PL6PU5TXIC24LCKIQY50C2LPAIC9TVZEVQGTMM63IHGBBUV1XSA6',36))+'09'*8:s+=`a`*int(c);a^=9
print s+'3'*39

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


1

জেলি , 85 বাইট

”7ẋ“ɓ’80“¡Ȯ⁶LÑɓĠ⁶-€Øġ°$¤ṛọḳƓƒṭ⁽@^ḥ⁷Ofạ<e½Ṇż;,RṘ¶ṀḊ+`⁸ⱮḃĿþṛ9.wƑ¡kḟUẎgLLµ’ḃĖŒṙị⁾1839”3ẋ

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

ট্রিনিটি হলের চ্যালেঞ্জের প্রতি ডেনিসের পদ্ধতির উপর ভিত্তি করে, মাইনাস প্রতিসাম্য, এবং শীর্ষস্থানীয় 7এস এবং ট্রেলিং 3এস।


3
ডেনিস এই চ্যালেঞ্জকে আলাদাভাবে কাছে নিয়েছে কারণ এটি ভিন্ন। আমি মনে করি আপনি ছাপিয়ে গেছেন!

@ জোসে জামান তিনি জেলি বিটিডব্লিউ করেছেন।
এরিক দ্য আউটগল্ফার

1

পাওয়ারশেল , 164 বাইট

$a='136361616151315131531532513151315215436365213213315454521532545453153254541616';6..2|%{$a=$a-replace$_,(11,88,22,34,3332)[$_-2]};'7'*156+'1'*78+$a+'1'*78+'3'*39

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

স্ট্রিং গুণ, কনটেনটেশন এবং প্রতিস্থাপন। পাওয়ারশেলের বেস 36 বা অনুরূপ নেই, তাই বড় সংখ্যার সংকোচন বিকল্পগুলি সীমাবদ্ধ। মাঝের অংশটি "সঙ্কুচিত" করার আরও ভাল উপায় হতে পারে - আমি এখনও তা পরীক্ষা করে দেখছি।


1

ওল্ফ্রাম ভাষা (গণিত) , 89 (17 + 71 + 1) বাইট

প্রথমে আপনি একটি জিজেআইপি ফাইলে নম্বরটি রফতানি করুন। কোনও ফাইল ছাড়াই "o" নামক এই ফাইলটি হ'ল 71 বাইট হবে, যা মোটের দিকে গণনা করে। ডিফল্টরূপে, এটি আপনার কাছে যাবে $TemporaryDirectory। পঠনযোগ্যতার জন্য অঙ্কগুলি ছাড়ছে।

Export["o",777777...,"GZIP"]

তারপর

"o"~Import~"GZIP"

সংখ্যাটি পুনর্গঠন করবে। ফাইলের নামটি একটি বাইট তাই এটি +1 থেকে আসে।

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


1

রুবি, 109 বাইট

স্ক্রিপ্টটি Zlib.inflateনম্বরটি সংক্ষেপিত করতে কল করে। এটির জন্য কমপক্ষে রুবি দরকার 1.9.3। এতে অপ্রিন্টযোগ্য বাইট রয়েছে, তাই আমি এটি এখানে আটকানো যায় না।

আমি এর আউটপুট আটকান vis prime-inflate.rb:

require'zlib'
puts Zlib.inflate DATA.read
__END__
x\M-Z37\^_\M-<\M-@\M^P\M-:\M-@\^B
\M^PY\M^F\M-X\^XP\M-U\^X,d\^F\^^e\^H3pX\M^J\M-*\^L,\M^F\M-,\^A\M^C\M^Ea)\^Ve\M-X\M-\\M^F\M-"\^L\M^KO\M-)
\M^L\M^I\^C\^@\^P\M-p~\M-!

আপনার যদি আনভিস (1) থাকে unvis prime-inflate.vis > prime-inflate.rbতবে 109-বাইট স্ক্রিপ্টটি পুনরুদ্ধার করতে চালান । অথবা আপনি নীচের সাথে বেস 64 ডিকোড করতে পারেন ruby -e 'print *STDIN.read.unpack(?m)' < prime-inflate.b64 > prime-inflate.rb

cmVxdWlyZSd6bGliJwpwdXRzIFpsaWIuaW5mbGF0ZSBEQVRBLnJlYWQKX19F
TkRfXwp42jM3H7zAkLrAAgqQWYbYGFDVGCxkBh5lCDNwWIqqDCyGrAGDhWEp
FmXY3IaiDItPqQqMiQMAEPB+oQ==

আমি কল করি Zlib.inflateতাই আমার নিজের ডিকম্প্রেশন অ্যালগরিদম ডিজাইন করার এবং গল্ফ দেওয়ার দরকার নেই। আমি ব্যবহার DATAসঙ্গে __END__কারণ সংকুচিত স্ট্রিং বৈধ হল UTF-8 নয়। রুবি কোড অবশ্যই বৈধ এএসসিআইআই (রুবি 1.9.x এ) বা ইউটিএফ -8 (রুবি ২.০ থেকে) হতে পারে বা #coding:binaryএনকোডিং পরিবর্তন করার জন্য একটি যাদু মন্তব্য থাকতে পারে, তবে রুবি পরে এনকোডিং যাচাই করে না __END__



1

6502 মেশিন কোড (সি 64), 142 122 বাইট

00 C0 A9 27 85 FB A2 00 86 FC A2 04 CA 10 01 60 BC 70 C0 BD 74 C0 20 D2 FF C6
FB D0 0B 48 A9 27 85 FB A9 0D 20 D2 FF 68 88 D0 EB E0 02 D0 DD 48 A5 FC 4A A8
B9 4A C0 90 04 4A 4A 4A 4A 29 0F F0 08 E6 FC A8 68 49 09 D0 CD 68 D0 C0 28 38
36 36 52 12 52 12 42 12 42 22 52 12 52 12 72 82 28 28 72 32 14 82 82 72 42 22
82 82 42 12 42 22 82 92 36 06 27 50 4F 9C 33 31 31 37

অনলাইন ডেমো

ব্যবহার: sys49152

  • বড় ধরণের ব্লকগুলির জন্য একই পদ্ধতি এবং ডেটা টেবিলগুলির আরও ভাল প্রয়োগের সাথে -20 বাইট।

ব্যাখ্যা

এটি মাঝের অংশে দৈর্ঘ্য 1এবং 8ক্রমগুলিও ব্যবহার করে ; যেহেতু তারা 16 এর চেয়ে ছোট, তাদের মধ্যে দুটি বাইট প্রতি এনকোড করা আছে।

মন্তব্য বিচ্ছিন্ন তালিকা:

         00 C0        .WORD $C000       ; load address
.C:c000  A9 27        LDA #$27          ; counter for newlines (39)
.C:c002  85 FB        STA $FB
.C:c004  A2 00        LDX #$00          ; index for run-length data
.C:c006  86 FC        STX $FC
.C:c008  A2 04        LDX #$04          ; index for "blocks" (counting down)
.C:c00a   .blockloop:
.C:c00a  CA           DEX
.C:c00b  10 01        BPL .continue     ; block index underflow -> done
.C:c00d  60           RTS
.C:c00e   .continue:
.C:c00e  BC 70 C0     LDY .lseqlens,X   ; load length of next block to Y
.C:c011  BD 74 C0     LDA .chars,X      ; load character of next block to A
.C:c014   .outloop:
.C:c014  20 D2 FF     JSR $FFD2         ; output character
.C:c017  C6 FB        DEC $FB           ; decrement newline counter
.C:c019  D0 0B        BNE .skipnl
.C:c01b  48           PHA               ; newline needed -> save accu
.C:c01c  A9 27        LDA #$27          ; restore newline counter
.C:c01e  85 FB        STA $FB
.C:c020  A9 0D        LDA #$0D          ; load newline character
.C:c022  20 D2 FF     JSR $FFD2         ; output character
.C:c025  68           PLA               ; restore accu
.C:c026   .skipnl:
.C:c026  88           DEY               ; decrement repeat counter
.C:c027  D0 EB        BNE .outloop      ; repeat until 0
.C:c029  E0 02        CPX #$02          ; check for block index of text part
.C:c02b  D0 DD        BNE .blockloop    ; not in text part -> repeat
.C:c02d   .textpart:
.C:c02d  48           PHA               ; save accu
.C:c02e  A5 FC        LDA $FC           ; load index for run-length data
.C:c030  4A           LSR A             ; and shift right
.C:c031  A8           TAY               ; -> to Y register
.C:c032  B9 4A C0     LDA .seqlens,Y    ; load run-length data
.C:c035  90 04        BCC .lownibble    ; carry clear from shift -> low nibble
.C:c037  4A           LSR A             ; shift high nibble into low nibble
.C:c038  4A           LSR A
.C:c039  4A           LSR A
.C:c03a  4A           LSR A
.C:c03b   .lownibble:
.C:c03b  29 0F        AND #$0F          ; mask low nibble
.C:c03d  F0 08        BEQ .textdone     ; run-length zero? then text block done
.C:c03f  E6 FC        INC $FC           ; increment index for run-length data
.C:c041  A8           TAY               ; run-length to y-register
.C:c042  68           PLA               ; restore accu
.C:c043  49 09        EOR #$09          ; toggle between '8' and '1'
.C:c045  D0 CD        BNE .outloop      ; and back to output loop
.C:c047   .textdone:
.C:c047  68           PLA               ; restore accu
.C:c048  D0 C0        BNE .blockloop    ; back to loop for next block
.C:c04a   .seqlens:
.C:c04a  28 38 36 36  .BYTE $28,$38,$36,$36
.C:c04e  52 12 52 12  .BYTE $52,$12,$52,$12
.C:c052  42 12 42 22  .BYTE $42,$12,$42,$22
.C:c056  52 12 52 12  .BYTE $52,$12,$52,$12
.C:c05a  72 82 28 28  .BYTE $52,$82,$28,$28
.C:c05e  72 32 14 82  .BYTE $72,$32,$14,$82
.C:c062  82 72 42 22  .BYTE $82,$72,$42,$22
.C:c066  82 82 42 12  .BYTE $82,$82,$42,$12
.C:c06a  42 22 82 92  .BYTE $42,$22,$82,$92
.C:c06e  36 06        .BYTE $36,$06
.C:c070   .lseqlens:
.C:c070  27 50 4F 9C  .BYTE $27,$50,$4F,$9C
.C:c074   .chars:
.C:c074  33 31 31 37  .BYTE "3117"

1

সি (জিসিসি) , 188 187 185 বাইট

-1 জনাথনফ্রেচের জন্য ধন্যবাদ।

-2 সিলিংক্যাট ধন্যবাদ।

#define F(c,n)for(c=0;c<n;c++)
i,j,k;r(d,n){F(k,n)printf("%d",d);}f(){r(7,156);r(1,79);F(i,45)F(j,6)r("pdpi8pIa7]R>=4gQ>Q2iPoX2=O4a1=QRJ17QR>=4a1i8p"[i]-49>>j&1?8:1,1);r(1,80);r(3,39);}

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


2
পিপিসিজিতে স্বাগতম, প্রথম প্রথম উত্তর!
ovs

আমি মনে করি আপনি একটি স্ট্রিংয়ের কাছে যেতে আপনার স্ট্রিংটি শিফট করতে পারেন যা ব্যাকস্ল্যাশ এড়িয়ে যাওয়ার প্রয়োজন হয় না, ফলস্বরূপ 187 বাইট হয়
জোনাথন ফ্রেচ

@ জোনাথানফ্রেচ আহ, সুন্দর!
গ্যাস্ট্রোপনার



0

বেফঞ্জ -৩৩ , ৫০০ বাইট

v F         >20g1-20p
>"3"20g10g`#^_>52*"F"20p30g10g`#v_"^!1"21p30p84*2+1p
^                       p03-1g03<
^>"81118888888811888888881>!"30p84*2+1p52*
^^"8888811188888811"*25"188111118"<>">#7"21p30p57*5p
>*"188111188188111188188111118818"^ $>:#,_@
^25"18811111881881111188188111111"<
>"8888811888888881"25*"1111111881"^
^"88811881111111881118888"*25"188"<
>"1188111111188111111118811111111"^
^"11881"*52"188111111118811111111"<
>"11111881"52*"188111188188111188"^
^"1118811111111188888811188888811"<

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

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