সোমবার নম্বর উত্পন্ন করুন


35

সোমবার সংখ্যার , যেমন দ্বারা সংজ্ঞায়িত Gamow মধ্যে এই প্রশ্ন বিরক্তিকর উপর ধরে ধনাত্মক পূর্ণসংখ্যা এন নিম্নলিখিত তিনটি বৈশিষ্ট্য সঙ্গে:

  • N এর দশমিক প্রতিনিধিত্বতে অঙ্ক 0 থাকে না
  • N এর দশমিক প্রতিনিধিত্বতে কোনও অঙ্ক দুটিবার থাকে না
  • N প্রতিটি দশমিক D দ্বারা বিভাজ্য যা এর দশমিক উপস্থাপনে ঘটে

নোট করুন যে এগুলি OEIS- এ লিচ-বেল নম্বর হিসাবে বিকল্পভাবে পরিচিত ।

উদাহরণ:

  • 15একটি সোমবার নম্বর, হিসাবে এটি উভয় দ্বারা বিভাজ্য এর 1এবং 5এবং সন্তুষ্ট অন্য দুটি অবস্থার
  • 16না, কারণ এটি দ্বারা বিভাজ্য নয় 6
  • সংখ্যাটি 22নয়, কারণ এটি 1 এবং 3 শর্ত পূরণ করলেও এটি শর্ত 2 ব্যর্থ করে।

আপনাকে সূচনা করার জন্য প্রথম 25 সোমবারের তালিকা এখানে রয়েছে (মোট 548 জন রয়েছে):

1 2 3 4 5 6 7 8 9 12 15 24 36 48 124 126 128 132 135 162 168 175 184 216 248

এখানে চ্যালেঞ্জটি হ'ল সংক্ষিপ্ততম কোডটি লিখুন যা সোমবার সংখ্যার সম্পূর্ণ ক্রম উৎপন্ন করে, 1 থেকে 9867312 পর্যন্ত (যে প্রশ্নটি সবচেয়ে বড় সম্ভাব্য হিসাবে প্রমাণিত)।

আপনার কোডটি কোনও ইনপুট গ্রহণ করা উচিত নয় এবং আউটপুটটি আপনার পছন্দসই ডিলিমেটারের সাথে STDOUT বা সমমানের হওয়া উচিত। সমস্ত সাধারণ কোড-গল্ফ বিধি প্রয়োগ হয় এবং স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়।

লিডারবোর্ড



1
লিঞ্চ-বেল নম্বর হিসাবেও পরিচিত ।
জিওবিটস

@ জিওবিটস ধন্যবাদ - আমি কোনও কারণে এটি OEIS এ খুঁজে পাইনি।
অ্যাডমবর্কবার্ক

8
আপনার গতকাল এই চ্যালেঞ্জটি পোস্ট করা উচিত ...
mbomb007

2
@ mbomb007 আমার কাছে হবে - যদিও আজ সকাল পর্যন্ত গামোর প্রশ্নটি দেখেনি!
অ্যাডমবর্কবার্ক

উত্তর:


1

জেলি , 8 বাইট

ȷ7Dg⁼QƲƇ

স্থানীয়ভাবে আট মিনিটের নিচে চলে।

এটি অনলাইন চেষ্টা করুন! (ছয়টি সংখ্যার বা তার কম সংখ্যার সাথে সংখ্যার সন্ধান করতে সংশোধিত)

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

ȷ7Dg⁼QƲƇ  Main link. No arguments.

ȷ7        Set the return value to 10**7.
       Ƈ  Comb; promote 10**7 to [1, ..., 10**7], then keep only those n in the range
          for which the link to the left returns a truthy value.
      Ʋ     Combine the four links to the left into a monadic chain.
  D           Decimal; yield n's digit array in base 10.
   g          Take the GCD of each digit and n.
     Q        Yield the unique digits of n.
    ⁼         Test both results for equality.

16

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

print[n for n in range(1,9**9)if(n<10**len(set(`n`)))>any(n%(int(d)or.3)for d in`n`)]

একটি তালিকা মুদ্রণ।

আমি পূর্ববর্তী চ্যালেঞ্জগুলির সাথে আমার উত্তর দুটির সাথে সংযুক্ত করছি:

কন্ডিশনের আরও ভাল করে সমন্বিত করে 1 বাইট সংরক্ষণের জন্য xsot ধন্যবাদ।


আপনি একটি বাইট সংরক্ষণ করতে পারেন:print[n for n in range(1,9**9)if(n<10**len(set(`n`)))>any(n%(int(d)or.3)for d in`n`)]
xsot

11

পার্ল, 61 47 বাইট

46 বাইট কোড + 1 বাইট কমান্ড লাইন প্যারামিটার।

/(.).*\1|0/||1*s/./$_%$&/rge||print for 1..1e7

ব্যবহার:

perl -l entry.pl

ব্যাখ্যা

/(.).*\1|0/ যদি নম্বর-অন্তর্-পরীক্ষায় একটি সদৃশ অক্ষর বা একটি 0 থাকে তবে 1 প্রদান করে

s/./$_%$&/rgeসংখ্যার-অধীন-পরীক্ষার% ডিজিটের মান সহ প্রতিটি ডিজিটকে প্রতিস্থাপন করে। উদাহরণস্বরূপ, 15 -> 00, 16 -> 04 (কারণ 16% 6 = 4)। এর অর্থ হ'ল যে কোনও ইনপুট যা এর সমস্ত ডিজিটের দ্বারা বিভাজ্য তা সমস্ত 0 এর সমন্বয়ে গঠিত হয়, অন্যথায় এটিতে একটি সংখ্যা> 0 থাকবে। এটি একটি সংখ্যার হিসাবে বিবেচনা করার জন্য, আমরা * 1, যার অর্থ কোনও সংখ্যার অধীন-পরীক্ষা এই ব্লকের জন্য 0টি ফিরে আসবে যদি অন্যথায়> 0 হয়।

এই দুটি বিবৃতি পৃথক করে এবং 'বা এর সাথে মুদ্রণ করুন, যদি দুটি দুটি শর্তের মধ্যে> 0 ফিরে আসে তবে শর্তটি মেলে এবং এক্সপ্রেশনটির পরবর্তী অংশগুলি মূল্যায়ন করবে না। যদি এবং শুধুমাত্র পূর্ববর্তী উভয় শর্ত 0 হয় তবে মুদ্রণটি তখন কার্যকর হবে। -lপতাকা প্রতিটি প্রিন্ট পরে একটি নতুন লাইন যোগ করার জন্য নিশ্চিত করে।


খুব সুন্দর. পার্ল ৫.১০ করে এবং + :-) এর sayপরিবর্তেprint-l
xebtl

পরামর্শের জন্য ধন্যবাদ! আমি ভেবেছিলাম say প্রথমে একটি স্পষ্ট ঘোষণার দরকার ?
জারমেক্স

@ জারমেক্স আমি এখানে নিখরচায় use feature 'say'বা নিখরচায় aroundতিহ্যটি শুরু করতে পেরেছি use 5.012- আমি যখন এটি করি তখন আমি সর্বদা উল্লেখ করি এবং এর আগে কেউ এটিকে চ্যালেঞ্জ জানায়নি । আমি অন্য কয়েকজনকেও একই রকম করতে দেখেছি :)
শখগুলি

2
@ হোবস মেটা সম্পর্কিত এই উত্তরটি বলেছে যে "এখন পর্যন্ত Theকমত্যটি এসও-তে এবং এখানে ছিল" -M5.010, যখন প্রয়োজন হয়, বিনামূল্যে "।
xebtl

2
ব্যবহার mapএবং say43 এই নিচে পায়: এটি অনলাইন ব্যবহার করে দেখুন!
এক্সকালি

10

পাইথ, 22 21

f&.{`T!f%T|vY.3`TS^T7

অপ্রয়োজনীয় ফর্ম্যাটিংয়ের 1 বাইট বন্ধ করে গল্ফ করার জন্য জাকুবকে ধন্যবাদ।

সম্পর্কিত প্রশ্নের উত্তর এই সিডব্লিউ দ্বারা ভারীভাবে অনুপ্রাণিত ।

আমার এখানে ফলাফলের একটি পেস্ট রয়েছে , যখন এটি ছাপানো নিউলাইন পৃথক করা হয়েছিল, এখন এটি পাইথোনিক তালিকা হিসাবে মুদ্রণ করে।

আপনি যদি 7 এর চেয়ে কম সংখ্যক না ব্যবহার করেন তবে অনলাইনে চেষ্টা না করার প্রস্তাব আমি দেব ... আমি এই লিঙ্কটিতে 2 এ সেট করে রেখেছি।

থেকে ফিল্টার 1করা 10^7-1যা সকল প্রয়োজনীয় মান জুড়ে। এই সংস্করণটি মেমরির ত্রুটি সৃষ্টি করতে পারে যদি এটি তালিকা তৈরি করতে না পারে S^T7যা list(range(1,10**7))পাইথন 3 এর অনুরূপ (তবে এটি আমার পক্ষে ভাল কাজ করে)। যদি তা হয় তবে আপনি চেষ্টা করতে পারেন:

.f&.{`Z.x!s%LZjZT0548

যা প্রথম 548 সোমবারের সংখ্যাগুলি খুঁজে বের করে। এটি 0সংখ্যার জন্য এটি পরীক্ষা করে দেখার পরিবর্তে এটির পরিবর্তে ট্রাই .3-ক্যাচ ব্লক ব্যবহারের অন্য একটি উপায়ও প্রদর্শন করে। এই সংস্করণটির ক্রেডিট পুরোপুরি জাকুবে যায়। (দ্রষ্টব্য যে এটি অনলাইন অনুবাদকের পক্ষে এখনও ধীর গতিতে)


1
এখানে একটি আলাদা সমাধান রয়েছে: .f&.{`Z.x!s%LZjZT0548এটি আপনার লুপ পদ্ধতির চেয়ে বেশ খানিকটা গতিযুক্ত (4x - 5x) এবং দৈর্ঘ্যে কেবল 21 বাইট রয়েছে।
জাকুব

1
@ জাকুব ব্যাকটিক্স মন্তব্যগুলিতে ব্যথা হয় না তাই না? : পি যদিও অনেক অনেক ধন্যবাদ!
FryAmTheEggman

উম্ম .. আপনার সমাধানটি কাজ করে না বলে মনে হচ্ছে .. আপনার টিআইও লিঙ্কে 100 এর মধ্যে রয়েছে, এটি 55, 66, 77, 88, 99নকল সংখ্যা সহ সমস্ত সংখ্যা দেখায় ..
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন দুর্ভাগ্যক্রমে, পাইথটি অনেক বার আপডেট হয়েছে যেহেতু আমি এই পোস্টটি তৈরি করেছি, আমি কি পরিবর্তন করেছি তা খুঁজে পাচ্ছি না। আপনি পেস্টে দেখতে পাবেন যে এটি পরিষ্কারভাবে আগে কাজ করেছিল। আমি মনে করি এটি সম্ভবত .{পরিবর্তিত হয়েছে, যেহেতু এটির পরিবর্তে {Iকাজ করা মনে হচ্ছে।
FryAmTheEggman

@ ফ্রাইআম দ্য এজিগম্যান আহ, আমি পেস্টটি দেখিনি। সত্যই এটি প্রায় তিন বছর হয়ে গেছে, তাই অবাক হওয়ার কিছু নেই things এই ক্ষেত্রে +1, কারণ পেস্ট প্রমাণ করে যে এটি কাজ করেছে। :)
কেভিন ক্রুইজসেন

9

জিএস 2 , 20 19 বাইট

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

17 7d 2f 24 65 f1 c8 24 d8 62 e9 65 f4 24 40 90 71 f3 54

এখানে কিছু ব্যাখ্যা। জিএস 2 একটি স্ট্যাক ভিত্তিক ভাষা, সুতরাং কোনও ভেরিয়েবল নেই। (4 টি রেজিস্ট্রার বাদে আমি এখানে একটি ব্যবহার করি)

17         # push constant 7
7d         # 10 raised to the power
2f         # create an array of numbers from 1 to n

    24     # get digits of number into array
    65     # calculate product of array
f1         # filter array by previous block of 2 instructions

    c8     # save top of stack to register a
    24     # get digits of number into array
        d8 # tuck register a under top of stack
        62 # boolean divisibility test 
    e9     # map array using previous block of 2 instructions
    65     # calculate product of array
f4         # filter array by previous block of 5 instructions 

    24     # get digits of number into array
    40     # duplicate top of stack
    90     # remove duplicates from array
    71     # test equality
f3         # filter array by previous block of 4 instructions
54         # show contents of array separated by line breaks

8

পাইথন 3, 132 128 114 111 104 বাইট

i=0
while i<1e8:
 j=str(i)
 if len(set(j))+2==len(j)+('0'in j)+all(i%int(k)<1 for k in j):print(i)
 i+=1

548 সোমবার নম্বর আছে।


1
আপনি 1e8এমনকি এর পরিবর্তে ব্যবহার করতে পারেন 9**9?
ডোম হেস্টিংস

স্থানটি সরিয়ে ফেলুন '0' not। এছাড়াও, i%int(k)==0সম্ভবত হতে পারে i%int(k)<1?
mbomb007

ধন্যবাদ। আমি এটি ফিরে যুক্ত করার অর্থ চাইনি। @ Mbomb007
জাচ গেটস

আপনি ব্যবহার করতে পারেন j=`i`
mbomb007

অন্য -6 ব্যবহারের জন্যif len(set(j))+2==len(j)+('0'in j)+all(i%int(k)<1 for k in j)
লিরটোসিয়াসট

7

এপিএল, 44 39 37 বাইট

{0=+/(⊢|∘⍵,0∘∊,⍴∘⊢≠⍴∘∪)⍎¨⍕⍵:⍵⋄⍬}¨⍳1e7

Ungolfed:

{
 x ← ⍎¨⍕⍵⋄                    ⍝ Define x to be a vector of the digits of ⍵
 0=+/(⊢|∘⍵,0∘∊,⍴∘⊢≠⍴∘∪)x:   ⍝ No zeros, all digits divide ⍵, all unique?
 ⍵⋄⍬                          ⍝ If so, return the input, otherwise null
}¨⍳1e7                        ⍝ Apply to the integers 1..1E7

মরিস জুকার ধন্যবাদ 7 বাইট সংরক্ষণ করা!


আমি এপিএলকে ভালবাসি। এই জন্যই.
কনর ও'ব্রায়েন

আমি মনে করি আপনি এটি 5 টি বাইট সংরক্ষণ করে ফাংশন ট্রেনগুলি ব্যবহার করে গল্ফ করতে পারেন: {0 = + / ((⊢ | ∘⍵, 0∘∊, ⍴∘⊢ ≠ ⍴∘∪) x ← ⍎¨⍕⍵: ⍵⋄⍬} ¨⍳ 1e7
মরিস জুকা

@ মরিসজুকা দুর্দান্ত, পরামর্শের জন্য ধন্যবাদ!
অ্যালেক্স এ।

আমি কেবল দেখেছি যে এই ফর্মটিতে x এর আর দরকার নেই, তাই আরও 2 বাইট সংরক্ষণ করা হয়েছে! :-)
মরিস জুচা

@ মরিসজুকা আপনি একটি এপিএল গল্ফিং মেশিন! আবার ধন্যবাদ!
অ্যালেক্স এ।

6

টিআই-বেসিক, 60 59 বাইট

For(X,1,ᴇ7
int(10fPart(X10^(-randIntNoRep(1,1+int(log(X->D
SortA(∟D
If X>9
If not(max(remainder(X,Ans+2Xnot(Ansmin(ΔList(∟D
Disp X
End

∟Dঅঙ্কগুলির তালিকা, যা গণিত এবং randIntNoRep(কমান্ড ব্যবহার করে উত্পন্ন হয় (সমস্ত সংখ্যার 1এবং এর মধ্যে 1+int(log(Xঅন্তর্ভুক্তের এলোমেলো ক্রমায়ন )। সমস্ত শর্তটি সন্তুষ্ট কিনা তা পরীক্ষা করতে আমি বিবৃতিগুলির কিছুটা জটিল শৃঙ্খলা ব্যবহার করি:

   min(ΔList(∟D        ;Zero if repeated digit, since ∟D was sorted ascending
Ans                    ;Multiplies the unsorted copy of ∟D by the minimum from above
                       ;(Lists are different dimensions; we can't elementwise AND)
                       ;Will contain a 0 if there's a 0 digit or a repeated digit
      not(             ;If there's a zero,
Ans+2X                 ;Add 2X to that pos. in the list, failing the test:

    max(remainder(X,   ;Zero iff all digits divide X and 2X wasn't added
not(

পুনরাবৃত্ত সংখ্যা বা শূন্য অঙ্ক রয়েছে এমন নম্বরগুলিকে ব্যর্থ করতে আমি শূন্যগুলি এর সাথে প্রতিস্থাপন করি 2Xকারণ এর Xদ্বারা কখনই বিভাজ্য হয় না 2X

বিশেষ ক্ষেত্রে 1 ~ 9 (কারণ ΔList(এক-উপাদান তালিকার ত্রুটি রয়েছে) আমি Ifচতুর্থ লাইনে স্টেটমেন্টটি পঞ্চম লাইনে Xচেকটি ছাড়তে ব্যবহার করব , স্বয়ংক্রিয়ভাবে সমস্ত ≤9 প্রদর্শিত হবে ।

আউটপুট নম্বরগুলি নিউলাইনগুলি দ্বারা পৃথক করা হয়।


5

গণিত 105

l=Length;Cases[Range@9867312,n_ /;(FreeQ[i=IntegerDigits@n,0]&&l@i== l@Union@i&&And@@(Divisible[n,#]&/@i))]
  • IntegerDigits ভেঙ্গে ফেল nএর অঙ্কগুলির তালিকায় যায় i,।
  • FreeQ[i,0] তালিকায় কোনও জিরো নেই কিনা তা পরীক্ষা করে দেখুন।
  • Length[i]==Length[Union[i]] কোনও পুনরাবৃত্ত সংখ্যা নেই তা পরীক্ষা করে।
  • And@@(Divisible[n,#]&/@i)প্রতিটি সংখ্যাটি একটি বিভাজক তা পরীক্ষা করে n

{1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 24, 36, 48, 124, 126, 128, 132, 135, 162, 168, 175, 184, 216, 248 , 264, 312, 315, 324, 384, 396, 412, 432, 612, 624, 648, 672, 728, 735, 784, 816, 824, 864, 936, 1236, 1248, 1296, 1326, 1362, 1368 , 1395, 1632, 1692, 1764, 1824, 1926, 1935, 1962, 2136, 2184, 2196, 2316, 2364, 2436, 2916, 3126, 3162, 3168, 3195, 3216, 3264, 3276, 3492, 3612, 3624 , 3648, 3816, 3864, 3915, 3924, 4128, 4172, 4236, 4368, 4392, 4632, 4872, 4896, 4932, 4968, 6132, 6192, 6312, 6324, 6384, 6432, 6912, 6984, 8136, 8496 , 8736, 9126, 9135, 9162, 9216, 9315, 9324, 9432, 9612, 9648, 9864, 12384, 12648, 12768, 12864, 13248, 13824, 13896, 13968, 14328, 14728, 14832, 16248, 16824, 17248 , 18264, 18432, 18624, 18936, 19368, 21384, 21648, 21784, 21864, 23184, 24168, 24816, 26184, 27384, 28416, 29736, 31248, 31824, 31896, 31968, 32184, 34128, 36792,37128, 37296, 37926, 38472, 39168, 39816, 41328, 41832, 42168, 42816, 43128, 43176, 46128, 46872, 48216, 48312, 61248, 61824, 62184, 64128, 68712, 72184, 7154, 73248 73962, 78624, 79128, 79632, 81264, 81432, 81624, 81936, 82416, 84216, 84312, 84672, 87192, 89136, 89712, 91368, 91476, 91728, 92736, 93168, 93816, 98136, 123648, 123864 124368, 126384, 129384, 132648, 132864, 132984, 134928, 136248, 136824, 138264, 138624, 139248, 139824, 142368, 143928, 146328, 146832, 148392, 148632, 149328, 14328, 162384, 1632 164832, 167328, 167832, 168432, 172368, 183264, 183624, 184392, 184632, 186432, 189432, 192384, 193248, 193824, 194328, 194832, 198432, 213648, 213864, 213984, 21৩৩৮, २१৮373 231864, 231984, 234168, 234816, 236184, 238416, 239184, 241368, 243168, 243768, 243816, 247968, 248136,248976, 261384, 263184, 273168, 281736, 283416, 284136, 291384, 293184, 297864, 312648, 312864, 312984, 314928, 316248, 316824, 318264, 318624, 319248, 319824, 321864, 321864, 321864 326184, 328416, 329184, 341928, 342168, 342816, 346128, 348192, 348216, 348912, 349128, 361248, 361824, 361872, 362184, 364128, 364724, 38224, 38224 391248, 391824, 392184, 394128, 412368, 413928, 416328, 416832, 418392, 418632, 419328, 419832, 421368, 423168, 423816, 427896, 428136, 428736, 431928, 43218, 432768, 4328 438912, 439128, 461328, 461832, 463128, 468312, 469728, 478296, 478632, 481392, 481632, 482136, 483192, 483216, 483672, 483912, 486312, 493128, 493128, 49312 613872, 614328, 614832, 618432, 621384, 623184, 623784,627984, 631248, 631824, 632184, 634128, 634872, 641328, 641832, 643128, 648312, 671328, 671832, 681432, 684312, 689472, 732648, 732816, 742896, 746928, 723432, 783216 813624, 814392, 814632, 816432, 819432, 823416, 824136, 824376, 831264, 831624, 832416, 834192, 834216, 834912, 836472, 84312, 843216, 843216, 8432112 873264, 891432, 894312, 897624, 912384, 913248, 913824, 914328, 914832, 918432, 921384, 923184, 927864, 931248, 931824, 94812, 948312, 948312, 94312 1289736, 1293768, 1369872, 1372896, 1376928, 1382976, 1679328, 1679832, 1687392, 1738296, 1823976, 1863792, 1876392, 1923768, 1936872, 1982736, 2137968, 2138938, 21897 2937816, 2978136, 2983176,3186792, 3187296, 3196872, 3271968, 3297168, 3298176, 3619728, 3678192, 3712968, 3768912, 3796128, 3816792, 3817296, 3867192, 3869712, 3927168, 3928176, 6312, 3812, 3812, 3832 6893712, 6913872, 6971328, 6971832, 7168392, 7198632, 7231896, 7291368, 7329168, 7361928, 7392168, 7398216, 7613928, 789131, 7861392, 7861392, 7861392 8163792, 8176392, 8219736, 8312976, 8367912, 8617392, 8731296, 8796312, 8912736, 8973216, 9163728, 9176328, 9176832, 918117, 923317, 9233176, 9283176 9812376, 9867312}6387192, 6389712, 6391728, 6719328, 6719832, 6731928, 6893712, 6913872, 6971328, 6971832, 7168392, 7198632, 7231896, 7291368, 7329168, 7361928, 7392168, 739821, 7313123 7891632, 7892136, 7916328, 7916832, 7921368, 8123976, 8163792, 8176392, 8219736, 8312976, 8367912, 8617392, 8731296, 9733189, 9176328, 9177328 9617832, 9678312, 9718632, 9723168, 9781632, 9782136, 9812376, 9867312}6387192, 6389712, 6391728, 6719328, 6719832, 6731928, 6893712, 6913872, 6971328, 6971832, 7168392, 7198632, 7231896, 7291368, 7329168, 7361928, 7392168, 739821, 7313123 7891632, 7892136, 7916328, 7916832, 7921368, 8123976, 8163792, 8176392, 8219736, 8312976, 8367912, 8617392, 8731296, 9733189, 9176328, 9177328 9617832, 9678312, 9718632, 9723168, 9781632, 9782136, 9812376, 9867312}8796312, 8912736, 8973216, 9163728, 9176328, 9176832, 9182376, 9231768, 9237816, 9278136, 9283176, 9617328, 9617832, 9678312, 9718632, 9712168, 9781632, 91221}, 981278796312, 8912736, 8973216, 9163728, 9176328, 9176832, 9182376, 9231768, 9237816, 9278136, 9283176, 9617328, 9617832, 9678312, 9718632, 9712168, 9781632, 91221}, 98127

Length[%]

548


আমি আশা সেখানে গণিত মধ্যে একটি উপায় কম বাইটে বৃহৎ সংখ্যক পেতে হয়, 9^9বা 1e8বা কিছু
FryAmTheEggman

আমি অবাক হয়েছি গণিতের এর জন্য অন্তর্নির্মিত কোনও ব্যবস্থা নেই ;-)। Unionসদৃশগুলি পরীক্ষা করার জন্য দুর্দান্ত কৌশল ।
অ্যাডমবর্কবার্ক

@ ফ্রাইআম দ্য এজিগম্যান, আপনি ম্যাথামেটিকাকে 9 ^ 9 এর জন্য মঞ্জুরি দেওয়ার বিষয়ে সঠিক। তবে কি 548 এর বেশি সোমবারের সংখ্যাটি ফেরত দেবে না?
ডেভিডসি

প্রশ্নে যেমন বলা হয়েছে, উপরের সীমা হিসাবে প্রদত্ত সংখ্যার চেয়ে সোমবারের সংখ্যা বেশি নয়।
FryAmTheEggman

5

হাস্কেল, 77 বাইট

[x|x<-[1..9^9],all(\a->a>'0'&&mod x(read[a])+sum[1|y<-show x,y==a]<2)$show x]

ব্যবহারের উদাহরণ (প্রথম 20 নম্বর):

take 20 $ [x|x<-[1..9^9],all(\a->a>'0'&&mod x(read[a])+sum[1|y<-show x,y==a]<2)$show x]

[1,2,3,4,5,6,7,8,9,12,15,24,36,48,124,126,128,132,135,162]

এটি কীভাবে কাজ করে: 1 থেকে 9 ^ 9 পর্যন্ত সমস্ত সংখ্যার উপর পুনরাবৃত্তি করুন এবং শর্তাদি পরীক্ষা করুন। অক্ষরের তালিকা হিসাবে এটি পরিচালনা করতে বর্তমান সংখ্যাটিকে xস্ট্রিং প্রতিনিধিত্ব ( show x) এ পরিণত করা হয়েছে ।


5

আর, 99 বাইট

for(n in 1:1e8){i=1:nchar(n);if(all(table(d<-(n%%10^i)%/%10^(i-1))<2)&!0%in%d&all(!n%%d))cat(n,"")}

সামান্য কম গল্ফড:

for(n in 1:1e8){
    i = 1:nchar(n)
    d = (n%%10^i)%/%10^(i-1) # Digits of n
    if(all(table(d)<2) # No digits is present more than once 
      & !0%in%d        # 0 is not one of the digits
      & all(!n%%d))    # All digits are divisors of n
    cat(n,"")
    }

5

পার্ল, 90 75 70 বাইট

print+($_,$/)x(grep(!/(\d).*\1|0/,$_)&s/./!$&||$_%$&/ger<1)for 1..1e7

1
আহ, আমি ডুপ চেক করার জন্য \ 1 ট্রিকটি মিস করেছি, দুর্দান্ত। আপনি কি স্টেটমেন্ট মডিফায়ার এবং একটি টের্নারি মুদ্রণের মাধ্যমে আরও সঞ্চয় করতে পারবেন?
ডোম হেস্টিংস

@ ডোমহাস্টিংস ধন্যবাদ, এখন আপনার পরামর্শ ব্যবহার করে আরও গল্ফ হয়েছে
স্টিভ 21

নিস, আমি মনে করি আপনি হবে না এবং আপনি হিসাবে ভাল আরো কয়েকটি সঞ্চয় করতে পারব, ^এবং $প্রায় 0আপনার grep, আপনি প্রতিস্থাপন করতে পারেন &&আগে s/./একটি একক সঙ্গে &এবং আমি মনে করি গত |0অপ্রয়োজনীয় হয় (যদিও শুধুমাত্র আপ-টু পরীক্ষিত 1e3। ..)। ভাল এবং সত্যই আমার স্কোর পরাজিত! :)
ডম হেস্টিংস

1
আপনার গল্ফিং টিপস সহ ডমহাস্টিংসকে ধন্যবাদ 70 এর নিচে।
স্টিভ

গ্রেপ থেকে মুক্তি পেয়ে আরও কিছুটা নীচে নামিয়ে (অপ্রয়োজনীয় - প্যাটার্ন ম্যাচটি গ্রেপ ছাড়াই এটির যত্ন নেয়) এবং বাকিটিকে একটি মানচিত্রে পুনরায় সাজিয়ে তুলুন: অনলাইনে চেষ্টা করুন!
এক্সকালি

4

সিজেম, 25 বাইট

1e7{_Ab__&0-_@=@@f%1b>},`

এটি অনলাইনে চেষ্টা করুন । নোট করুন যে অনলাইন লিঙ্কটি কেবল 10,000 এ চলে। আমি নিশ্চিত না যে আপনি যদি যথেষ্ট ধৈর্য ধরে থাকেন তবে এটি অনলাইনে শেষ হবে কিনা। এটি সিজেএম-এর অফলাইন সংস্করণ দিয়ে এটি পরীক্ষা করেনি, তবে আমি আশা করি এটি শেষ হয়ে যাবে।

ব্যাখ্যা:

1e7     Upper limit.
{       Start filter loop.
  _Ab     Copy and convert to list of decimal digits.
  __&     Intersect list with itself to remove duplicates.
  0-      Remove zero.
  _       Make a copy of unique non-zero digits. Will use these as divisors.
  @=      Compare unique non-zero digits to all digits. Must be true for Monday numbers.
  @@      Rotate original number and list of non-zero digits to top.
  f%      Remainders of original number with all non-zero digits.
  1b      Sum up the remainders. Since they all must be zero for Monday numbers,
          their sum must be zero.
  >       Check that first part of condition was 1, and sum of remainders 0.
},      End filter loop.
`       Convert resulting list to string.

4

সি #, 230 227

আমি গল করার পরে কিছুক্ষণ হয়ে গেছে তাই বাইকাউন্টটি নামার জন্য আমি সম্ভবত কয়েকটি কৌশল ভুলে গেছি। আমি যখন তাদের সম্পর্কে চিন্তা করব তখন উন্নতি হবে ... আপাতত:

using System.Linq;class P{static void Main(){System.Console.Write(string.Join(",",Enumerable.Range(0,1<<24).Where(i=>{var s=i.ToString();return!s.Contains('0')&&s.Length==s.Distinct().Count()&&s.All(x=>i%(48-(int)x)==0);})));}}

Ungolfed:

using System.Linq;
class P
{
    static void Main()
    {
        System.Console.Write(                                       //Output...
            string.Join(                                            //...all results...
                ",",                                                //...comma separated...
                Enumerable.Range(0, 1<<24)                          //...from 0 to 16777216...
                    .Where(i => {                                   //...where...
                        var s = i.ToString();                       //...the digits as char array (what we usually call a string)...
                        return !s.Contains('0')                     //...for which none of the digits is 0...
                            && s.Length == s.Distinct().Count()     //...and the number of distinct digits equals the total number of digits (e.g. all unique)...
                            && s.All(x => i % (48 - (int)x) == 0);  //...and the number is divisible by each of the digits (after 'ASCII-correction')
                    })
            )
        );
    }
}

1,2,3,4,5,6,7,8,9,12,15,24,36,48,124,126,128,132,135,162,168,175,184,216,248,264,312,315,324,384,396,412,432,612,624,648,672,728,735,784,816,824,864,936,1236,1248,1296,1326,1362,1368,1395,1632,1692,1764,1824, 1926,1935,1962,2136,2184,2196,2316,2364,2436,2916,3126,3162,3168,3195,3216,3264,3276,3492,3612,3624,3648,3816,3864,3915,3924, 4128,4172,4236,4368,4392,4632,4872,4896,4932,4968,6132,6192,6312,6324,6384,6432,6912,6984,8136,8496,8736,9126,9135,9162,9216, 9315,9324,9432,9612,9648,9864,12384,12648,12768,12864,13248,13824,13896,13968,14328,14728,14832,16248,16824,17248,18264,18432,18624,18936,19368, 21384,21648,21784,21864,23184,24168,24816,26184,27384,28416,29736,31248,31824,31896,31968,32184,34128,36792,37128,37296,37926,38472,39168,39816,41328, 41832,42168,42816,43128,43176,46128,46872,48216,48312,61248,61824,62184,64128,68712,72184,73164,73248,73416,73962,78624,79128,79632,81264,81432,81624,81936,82416,84216,84312,84672,87192,89136,89712,91368,91476,91728,92736,93168,93816,98136,123648,123864,123984, 124368,126384,129384,132648,132864,132984,134928,136248,136824,138264,138624,139248,139824,142368,143928,146328,146832,148392,148632,149328,149832,162384,163248,163824,164328, 164832,167328,167832,168432,172368,183264,183624,184392,184632,186432,189432,192384,193248,193824,194328,194832,198432,213648,213864,213984,214368,216384,218736,219384,231648, 231864,231984,234168,234816,236184,238416,239184,241368,243168,243768,243816,247968,248136,248976,261384,263184,273168,281736,283416,284136,291384,293184,297864,312648,312864, 312984,314928,316248,316824,318264,318624,319248,319824,321648,321864,321984,324168,324816,326184,328416,329184,341928,342168,342816,346128,348192,348216,348912,349128,361248, 361824,361872,362184,364128,364728,367248,376824,381264,381624,382416,384192,384216,384912,391248,391824,392184,394128,412368,413928,416328,416832,418392,418632,419328,419832,421368, 423168,423816,427896,428136,428736,431928,432168,432768,432816,436128,438192,438216,438912,439128,461328,461832,463128,468312,469728,478296,478632,481392,481632,482136,483192, 483216,483672,483912,486312,489312,491328,491832,493128,498312,612384,613248,613824,613872,614328,614832,618432,621384,623184,623784,627984,631248,631824,632184,634128,634872, 641328,641832,643128,648312,671328,671832,681432,684312,689472,732648,732816,742896,746928,762384,768432,783216,789264,796824,813264,813624,814392,814632,816432,819432,823416, 824136,824376,831264,831624,832416,834192,834216,834912,836472,841392,841632,842136,843192,843216,843912,846312,849312,861432,864312,873264,891432,894312,897624,912384,913248,913824,914328,914832,918432,921384,923184,927864,931248,931824,932184,934128,941328,941832,943128,948312,976248,978264,981432,984312,1289736,1293768,1369872, 1372896,1376928,1382976,1679328,1679832,1687392,1738296,1823976,1863792,1876392,1923768,1936872,1982736,2137968,2138976,2189376,2317896,2789136,2793168,2819376,2831976,2931768,2937816,2978136,2983176, 3186792,3187296,3196872,3271968,3297168,3298176,3619728,3678192,3712968,3768912,3796128,3816792,3817296,3867192,3869712,3927168,3928176,6139728,6379128,6387192,6389712,6391728,6719328,6719832,6731928, 6893712,6913872,6971328,6971832,7168392,7198632,7231896,7291368,7329168,7361928,7392168,7398216,7613928,7639128,7829136,7836192,7839216,7861392,7863912,7891632,7892136,7916328,7916832,7921368,8123976, 8163792,8176392,8219736,8312976,8367912,8617392,8731296,8796312,8912736,8973216,9163728,9176328,9176832,9182376,9231768,9237816,9278136,9283176,9617328,9617832,9678312,9718632,9723168,9781632,9782136,9812376,9867312


(int) 1e7 1 << 24 হতে পারে?
lirtosiast

@ থমাসকওয়া হ্যাঁ, এটি হতে পারে। প্রকৃতপক্ষে. ধন্যবাদ!
রবিআইআইআই

4

টিআই-বেসিক, 55 53 বাইট

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

For(X,1,ᴇ7
int(10fPart(X10^(-randIntNoRep(0,1+int(log(X->D
SortA(∟D
If not(sum(remainder(X,Ans+Xnot(Ansmin(ΔList(∟D
Disp X
End

আমার মূল পরিবর্তনটি অর্থ থেকে শুরু randIntNoRep(1,করে randIntNoRep(0,যে প্রতি অঙ্কিত সংখ্যার তালিকায় এখন একটি শূন্য থাকবে।

number  |  randIntNoRep  |  digits  |  sorted
9       |  1,0           |  9,0     |  0,9
102     |  3,1,0,2       |  1,2,0,0 |  0,0,1,2

যেহেতু এখন প্রতিটি সংখ্যার শূন্য রয়েছে তাই এটি বাকী অংশের যোগফলকে প্রভাবিত করে। সাধারণত অবশিষ্টাংশের যোগফল 0 হয় তবে এখন অতিরিক্ত শূন্যের উপস্থিতি আমাদের বিভাজ্যতা পরীক্ষার একটি ব্যর্থতার কারণ হয়ে দাঁড়ায়।
এই নিবারণ করার জন্য, আমি পরিবর্তিত 2Xnot(করতে Xnot(। 2 পরীক্ষাটি 0 এ ব্যর্থ করতে মূলত সেখানে ছিল তবে এখন এটি শূন্যের দিকে চলে গেছে। যে সংখ্যাগুলি তাদের অঙ্কগুলিতে একটি শূন্য থাকে তবে এখন একটি আছে amin(ΔList(∟D যাইহোক শূন্যের রয়েছে (যেহেতু তাদের তালিকায় 2 বা ততোধিক জিরো রয়েছে) সুতরাং এই পরিবর্তনটি কোনও অতিরিক্ত নম্বর পরীক্ষায় উত্তীর্ণ হয় না।

এই পদ্ধতির সুবিধাটি হ'ল, যেহেতু এখন ১-৯ নম্বর থেকে "দুটি অঙ্ক" উত্পাদিত হয়েছে, ΔList(ফাংশনটি ত্রুটি তৈরি করে না, যা আমাদের একক-সংখ্যার জন্য একটি বিশেষ শর্ত থেকে মুক্তি পেতে দেয়।


4

05 এ বি 1 ই , 30 22 21 18 14 13 12 9 বাইট

-9 বাইট @ ইনিগমা এবং @ মিঃ এক্সকোডার এর সাহায্য এবং উত্সাহের জন্য ধন্যবাদ । আমি যখন 30 বছর বয়সী তখনও আপনার মনে ইতিমধ্যে 12-বাইট সমাধান ছিল যদিও আমাকে বেশিরভাগই এটি নিজেকে নির্ধারণ করার জন্য ধন্যবাদ! এই ​​চ্যালেঞ্জটি থেকে 05AB1E সম্পর্কে অনেক কিছু শিখেছি! -3 বাইটস @ গ্রিমিকে ধন্যবাদ

7°LʒÐÑÃÙQ

এটি অনলাইনে চেষ্টা করুন ( 10 7 এর পরিবর্তে 10 3 এর নীচে সংখ্যাগুলি আউটপুট করে) 60 সেকেন্ডের পরে টাইম আউট রোধ করতে )।

ব্যাখ্যা:

7°L        # Generate a list in the range [1, 10^7]
   ʒ       # Filter, so only the numbers that evaluated to 1 (truthy) remain:
    Ð      #  Triplicate the current number
     Ñ     #  Get the divisors of this number
           #   i.e. 128 → [1,2,4,8,16,32,64,128]
           #   i.e. 1210 → [1,2,5,10,11,22,55,110,121,242,605,1210]
      Ã    #  Only keep those digits/numbers in the original number (which is checked in
           #  order, so it will only keep the digits and ignores the later numbers)
           #   i.e. 128 → 128
           #   i.e. 1210 → 121
       Ù   #  Uniquify the number, removing any duplicated digits
           #   i.e. 128 → 128
           #   i.e. 121 → 12
        Q  #  Check if the number is unchanged after this
           #   i.e. 128 and 128 → 1 (truthy)
           #   i.e. 1210 and 12 → 0 (falsey)

পূর্ববর্তী 12 বাইটার সংস্করণ (আমার প্রথম 05ab1E উত্তরগুলির মধ্যে একটি):
দ্রষ্টব্য: কেবল 05AB1E এর উত্তরাধিকার সংস্করণে কাজ করে।

7°LʒÐSÖPsDÙQ*

এটি অনলাইনে চেষ্টা করুন ( 60 সেকেন্ডের পরে টাইম আউট রোধ করতে 10 7 এর পরিবর্তে 10 3 এর নীচে সংখ্যাগুলি আউটপুট করে )।

ব্যাখ্যা:

7°L        # Generate a list in the range [1, 10^7]
   ʒ       # Filter, so only the numbers that evaluated to 1 (true) remain:
    Ð      #  Triplicate the current number N
     Ù     #  Remove all duplicated digits of the second N
           #   i.e. 1210 → 120
      Q    #  Check if the last two numbers are still the same (1 or 0 as result)
    *      #  Multiply this result with remaining third number from the triplication
     D     #  Duplicate this number, so we have two again
      S    #  Separate all the digits of the second one
           #   i.e. 128 → ['1', '2', '8']
       Ö   #  Check if (the second) N is divisible by each of its digits
           #   i.e. 128 and ['1', '2', '8'] → [1, 1, 1]
           #   (NOTE: If the number contains a '0', it won't error on division by 0,
           #          but instead return the number N itself in the list)
           #   i.e. 105 and ['1', '0', '5'] → [1, 105, 1]
        P  #  Take the product of this list (if the divisible test for one
           #  of the digits was 0, this will be 0 as well)
           #   i.e. [1, 1, 1] → 1
           #   i.e. [1, 105, 1] → 105 (only 1 is truthy in 05AB1E)

আপনার উত্তর মুদ্রণগুলি 297, যা লিঞ্চ-বেল সংখ্যাগুলির ক্রম নয়।
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার দীর্ঘশ্বাস .. কোনও সংখ্যা তার সমস্ত সংখ্যার দ্বারা বিভাজ্য কিনা তা পরীক্ষা করার জন্য প্রথমে কিছুটা দীর্ঘ ছিল তবে এটির মতো চ্যালেঞ্জটি উপস্থিত ছিল। দেখে মনে হচ্ছে এই উত্তরটিও অবৈধ .. এবং এখানে আপনি এবং এনিগমা 12-15 বাইট উত্তর সম্পর্কে কথা বলছেন যখন আমার 30 বাইট উত্তরটিও কাজ করে না, হ্যাঁ .. কোথাও কোনও টিউটোরিয়াল আছে? ; পি
কেভিন ক্রুইজসেন

1
9 বাইট:7°LʒÐÑÃÙQ
গ্রিমি

@ গ্রিমি আমার প্রথম প্রথম 05AB1E উত্তরগুলির মধ্যে একটি। :) চমৎকার পন্থা!
কেভিন ক্রুইজসেন

3

জুলিয়া, 88 বাইট

print(join(filter(i->(d=digits(i);0d&&d==unique(d)&&all(j->i%j<1,d)),1:9867312)," "))

এটি সহজেই সমস্ত সংখ্যা 1 থেকে বৃহত্তম লিঞ্চ-বেল নম্বর পর্যন্ত নেয় এবং এগুলি কেবলমাত্র লিঞ্চ-বেল সংখ্যাগুলিতে ফিল্টার করে।

Ungolfed:

lynch = filter(i -> (d = digits(i);
                     0  d &&
                     d == unique(d) &&
                     all(j -> i % j == 0, d)),
               1:9867312)

print(join(lynch, " "))

3

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

print[i for i in range(6**9)if'0'not in`i`and len(set(`i`))==len(`i`)and all(i%int(k)==0for k in`i`)]

আপনি printঅনুবাদককে 96 এ পেয়ে যেতে 6**9পারেন। তবে যেহেতু এটি 8 ডিজিটের সাথে ব্যবহৃত হয়েছে, যদিও বৃহত্তম সোমবারটি কেবল 7 ডিজিটের মতো, 9**9সম্ভবত এমন কোনও কিছু সময় লাগবে, 6 ** 9 কেবলমাত্র 10 সেকেন্ড সময় নেয়।


হিসাবে প্রশ্নগুলির একটি দম্পতি উপর নির্দিষ্ট 1e7 উভয় তুলনায় খাটো
হলোওয়ে

@ ট্রেনগোট 1e7একটি ভাসা, পরিসীমা পূর্ণসংখ্যা লাগে।
রোহকানা

খুবই সত্য. ভেবেছিলেন না
হোলওয়ে

3

পার্ল, 97 বাইট

print+($n=$_,$/)x(!/0/&(y///c==grep{2>eval"$n=~y/$_//"}/./g)&&y///c==grep!($n%$_),/./g)for 1..1e7

দৌড়াতে কিছুটা সময় নেয়, তবে প্রয়োজনীয় আউটপুট উত্পাদন করে, আরও 1e3দ্রুত উদাহরণের জন্য পরিবর্তন করুন !


আমি এই মুহুর্তে এটি চেষ্টা করার মতো অবস্থানে নেই তবে এর পরিবর্তে y///c==grep{2>eval"$n=~y/$_//"}/./gআপনি কি কিছু লাইন ধরে কিছু ব্যবহার করতে পারবেন !/(.).*\1/?
এমএস 210

@ msh210 প্রায় অবশ্যই! আমি মনে করি এটি এখন আমার ডিফল্ট হবে, তবে এটিকে পরিবর্তন করলে স্টিভ বা জারেক্সের উত্তরগুলি আরও নিকটে পরিণত হবে , যা আরও উন্নত are যদিও একবার দেখার জন্য ধন্যবাদ!
ডম হেস্টিংস

3

ম্যাটল্যাব, 100

o=49;for n=2:1e7 a=num2str(n);if all([diff(sort(a)) a~=48 ~mod(n,a-48)]) o=[o ',' a];end;end;disp(o)

এবং আরও পঠনযোগ্য ফর্ম্যাটে:

o=49;  %1 is always in there, so add the ASCII value. This prevents there being a ',' prefixed.
for n=2:1e7 
    a=num2str(n);
    if (all([diff(sort(a)) a~=48 ~mod(n,a-48)]))
        o=[o ',' a];
    end
end
disp(o)

11×107

চেকগুলি নিম্নরূপ:

  1. কোনও নকল আছে কিনা তা আগে পরীক্ষা করে দেখুন। অ্যারে বাছাই করে, যদি কোনও টানা অঙ্কের মধ্যে পার্থক্য শূন্য হয়, তবে সেখানে নকল রয়েছে

    diff(sort(a))
    
  2. কোনও শূন্য আছে কিনা তা পরীক্ষা করে দেখুন। 0 এর জন্য ASCII 48 হয়, তাই আমরা পরীক্ষা করে নিই যে সমস্ত সংখ্যার সমান নয়।

    a~=48
    
  3. এটি সমস্ত অঙ্ক দ্বারা বিভাজ্য কিনা তা পরীক্ষা করুন। আমরা পরীক্ষা করে দেখি যে প্রতিটি অঙ্কের (ASCII থেকে দশমিক হিসাবে রূপান্তর, সুতরাং -৪৪) বিভাজন করার সময় অবশিষ্টটি শূন্য হয়।

    ~mod(n,a-48)
    

অবশেষে আমরা নিশ্চিত করে নিই যে all()চেকগুলি সত্য, এবং যদি তা হয় তবে আমরা এটিকে কমা দ্বারা পৃথক করা আউটপুট স্ট্রিংয়ের সাথে যুক্ত করি।

ম্যাটল্যাবের কোনও STDOUT নেই, সুতরাং পরিবর্তে আমি ব্যবহারের শেষে ফলাফলের স্ট্রিংটি মুদ্রণ করি disp()


এই কোডটি কম! এটি সোমবারের সমস্ত নম্বর সঠিকভাবে খুঁজে পেয়েছে তা নিশ্চিত করার জন্য আমি এখনও এটি চালিয়ে যাচ্ছি তবে এখন পর্যন্ত দেখতে ভাল লাগছে।

হালনাগাদ:

কোড চলমান শেষ। এটি নিম্নলিখিত মুদ্রণ:

1,2,3,4,5,6,7,8,9,12,15,24,36,48,124,126,128,132,135,162,168,175,184,216,248,264,312,315,324,384,396,412,432,612,624,648,672,728,735,784,816,824,864,936,1236,1248,1296,1326,1362,1368,1395,1632,1692,1764,1824,1926,1935,1962,2136,2184,2196,2316,2364,2436,2916,3126,3162,3168,3195,3216,3264,3276,3492,3612,3624,3648,3816,3864,3915,3924,4128,4172,4236,4368,4392,4632,4872,4896,4932,4968,6132,6192,6312,6324,6384,6432,6912,6984,8136,8496,8736,9126,9135,9162,9216,9315,9324,9432,9612,9648,9864,12384,12648,12768,12864,13248,13824,13896,13968,14328,14728,14832,16248,16824,17248,18264,18432,18624,18936,19368,21384,21648,21784,21864,23184,24168,24816,26184,27384,28416,29736,31248,31824,31896,31968,32184,34128,36792,37128,37296,37926,38472,39168,39816,41328,41832,42168,42816,43128,43176,46128,46872,48216,48312,61248,61824,62184,64128,68712,72184,73164,73248,73416,73962,78624,79128,79632,81264,81432,81624,81936,82416,84216,84312,84672,87192,89136,89712,91368,91476,91728,92736,93168,93816,98136,123648,123864,123984,124368,126384,129384,132648,132864,132984,134928,136248,136824,138264,138624,139248,139824,142368,143928,146328,146832,148392,148632,149328,149832,162384,163248,163824,164328,164832,167328,167832,168432,172368,183264,183624,184392,184632,186432,189432,192384,193248,193824,194328,194832,198432,213648,213864,213984,214368,216384,218736,219384,231648,231864,231984,234168,234816,236184,238416,239184,241368,243168,243768,243816,247968,248136,248976,261384,263184,273168,281736,283416,284136,291384,293184,297864,312648,312864,312984,314928,316248,316824,318264,318624,319248,319824,321648,321864,321984,324168,324816,326184,328416,329184,341928,342168,342816,346128,348192,348216,348912,349128,361248,361824,361872,362184,364128,364728,367248,376824,381264,381624,382416,384192,384216,384912,391248,391824,392184,394128,412368,413928,416328,416832,418392,418632,419328,419832,421368,423168,423816,427896,428136,428736,431928,432168,432768,432816,436128,438192,438216,438912,439128,461328,461832,463128,468312,469728,478296,478632,481392,481632,482136,483192,483216,483672,483912,486312,489312,491328,491832,493128,498312,612384,613248,613824,613872,614328,614832,618432,621384,623184,623784,627984,631248,631824,632184,634128,634872,641328,641832,643128,648312,671328,671832,681432,684312,689472,732648,732816,742896,746928,762384,768432,783216,789264,796824,813264,813624,814392,814632,816432,819432,823416,824136,824376,831264,831624,832416,834192,834216,834912,836472,841392,841632,842136,843192,843216,843912,846312,849312,861432,864312,873264,891432,894312,897624,912384,913248,913824,914328,914832,918432,921384,923184,927864,931248,931824,932184,934128,941328,941832,943128,948312,976248,978264,981432,984312,1289736,1293768,1369872,1372896,1376928,1382976,1679328,1679832,1687392,1738296,1823976,1863792,1876392,1923768,1936872,1982736,2137968,2138976,2189376,2317896,2789136,2793168,2819376,2831976,2931768,2937816,2978136,2983176,3186792,3187296,3196872,3271968,3297168,3298176,3619728,3678192,3712968,3768912,3796128,3816792,3817296,3867192,3869712,3927168,3928176,6139728,6379128,6387192,6389712,6391728,6719328,6719832,6731928,6893712,6913872,6971328,6971832,7168392,7198632,7231896,7291368,7329168,7361928,7392168,7398216,7613928,7639128,7829136,7836192,7839216,7861392,7863912,7891632,7892136,7916328,7916832,7921368,8123976,8163792,8176392,8219736,8312976,8367912,8617392,8731296,8796312,8912736,8973216,9163728,9176328,9176832,9182376,9231768,9237816,9278136,9283176,9617328,9617832,9678312,9718632,9723168,9781632,9782136,9812376,9867312

আপনি যদি ইনপুট হিসাবে এই কোডটি চালান তবে:

nums = length(strsplit(stdout,','))

ইয়েল্ডস 548।


3

রুবি, 79

?1.upto(?9*7){|s|a=s.chars;a.uniq!||a.any?{|x|x<?1||0<eval([s,x]*?%)}||puts(s)}

একটি আকর্ষণীয় সঙ্গে আরও আকর্ষণীয় কিন্তু কিছুটা দীর্ঘ সমাধান:

?1.upto(?9*7){|s|s[/(.).*\1|[0#{(1..9).map{|*x|x*eval([s,x]*?%)}*''}]/]||puts(s)}

প্রতিটি ক্ষেত্রে, আমরা রুবির ক্ষমতাকে স্ট্রিংগুলিতে পুনরাবৃত্তি করার জন্য ব্যবহার করছি যেন তারা দশমিক পূর্ণসংখ্যা: ?1.upto(?9*7)সমান 1.upto(9999999).map(&:to_s).each। আমরা মডুলো অপারেটরটি ব্যবহার করে প্রতিটি ননজারো ডিজিটের স্ট্রিংয়ে যোগ দেব এবং বিভাজ্যতা যাচাইয়ের জন্য ফলাফলটি প্রকাশ করি।

বোনাস রুবি 1.8 সমাধান ( -lসঠিক আউটপুট জন্য পতাকা প্রয়োজন ):

'1'.upto('9'*7){|$_|~/(.).*\1|[0#{(1..9).map{|*x|x*eval("#$_%#{x}")}}]/||print}

1.8 ব্লক পুনরাবৃত্তিকে বৈশ্বিক পরিবর্তনশীল হতে দেয়। নির্ধারণের $_এটা স্ট্রিং অপারেশনের জন্য অন্তর্নিহিত রিসিভার করে তোলে। আমরা আরও সহজেই নিয়মিত অভিব্যক্তিতে অ্যারেগুলি বিভক্ত করতে পারি: 1.8-এ, এতে /[#{[1,2]}]/মূল্যায়ন করে /[12]/


এখন যে রুবি ২.৪ এর digitsপূর্ণসংখ্যার উপর একটি কার্যকারিতা রয়েছে , আপনি ইওলাল হ্যাক থেকে বাইটগুলি সংরক্ষণ করতে পারবেন যেহেতু আপনি আর স্ট্রিংয়ের উপর অপারেটিং করছেন না! 63 বাইট।
মান কালি

3

পিপ , 25 বাইট

Fa,t**7Ia#=UQa&0=$+a%^aPa

প্রতিটি লাইনের নিজস্ব লাইনে আউটপুট দেয়। এটি প্রায় 10 মিনিট ধরে চলেছে এবং এখন পর্যন্ত 984312 পর্যন্ত অর্জন করেছে তবে আমি নিশ্চিত যে এটি সঠিক correct (সম্পাদনা করুন: কয়েক ঘন্টা পরে ... কোড সমাপ্ত হয়েছে, তাদের সমস্ত 548 উত্পন্ন হয়েছে generated)

এখানে পাইথন-এসেক সিউডোকোড উপস্থাপনা:

for a in range(10**7):
  if lengthEqual(a, set(a)) and 0 == sum(a%d for d in digits(a)):
    print(a)

#=অপারেটর দৈর্ঘ্য দুটি iterables তুলনা করা হয়। যদি UNI Que অক্ষরের aসংখ্যা অক্ষরের সংখ্যার সমান হয় তবে aকোনও পুনরাবৃত্তি হবে না।

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

      ^a   Split num into an array of its digits
    a%     Take num mod each of those digits; if a digit is zero, the result will be nil
  $+       Sum the resulting list (note: summing a list containing nil results in nil!)
0=         Iff the sum equals 0, return 1 (true); otherwise (>0 or nil), return 0 (false)

এটি একটি সুন্দর ঝরঝরে ভাষা! স্ট্যাক-ভিত্তিক গল্ফিং ছাড়া অন্য কিছু দেখে ভাল লাগছে।
অ্যাডমবর্কবার্ক

1
@ টিমিমিডি আপনি যদি নন-স্ট্যাক ভিত্তিক গল্ফিং দেখতে চান তবে প্রায় পাইথের কিছুটা অংশ রয়েছে।
রেটো কোরাডি

@ রিটোকোরাডি তবে আপনি যদি ইনফিক্স অপারেটরদের সাথে স্ট্যাক-ভিত্তিক গল্ফিং দেখতে চান তবে পিপ আপনার জন্য। ; ^)
DLosc

Couple hours laterএটি একটি ভাল জিনিস কর্মক্ষমতা আমলে নেওয়া হয় না।
ফাঁকা 9

3

জাভাস্ক্রিপ্ট (ES6), 106 90 83 বাইট

বাচ্চারা, বাড়িতে এটি চেষ্টা করবেন না; জেএস কোনও রেজেক্স সহ এক থেকে দশ কোটি ডলার পর্যন্ত প্রতিটি পূর্ণসংখ্যার প্রতিটি অঙ্কের মধ্য দিয়ে লুপিংয়ের সম্ভাবনা নিয়ে খুশি হবে না।

for(i=0;i<1e7;i++)/(.).*\1|0/.test(i)||+`${i}`.replace(/./g,j=>i%j)||console.log(i)

trueযদি সংখ্যাটিতে সদৃশ অঙ্ক বা শূন্য থাকে তবে প্রথম রেজেক্স (@ জারেক্সের কাছে প্রপসগুলি) প্রদান করে । যদি এটি সক্রিয় হয় false, প্রোগ্রামটি দ্বিতীয়টিতে চলে যায়, যা প্রতিটি অঙ্কের jসাথে প্রতিস্থাপন করে i%j। ফলাফলটি সমস্ত শূন্য হয় যদি এটির সমস্ত অঙ্ক দ্বারা বিভাজ্য হয়, এক্ষেত্রে এটি এগিয়ে যায় console.log(i)

পরামর্শ স্বাগত!


3

জাভাস্ক্রিপ্ট (ES6), 76

/* Answer below. For testing purpose, redirect consoloe.log */ console.log=x=>document.write(x+' ')

for(i=0;i++<1e7;)/0|(.).*\1/.test(i)||[...i+''].some(d=>i%d)||console.log(i)

0 বা পুনরাবৃত্ত সংখ্যার জন্য regexp পরীক্ষা। তারপরে অঙ্কগুলির অ্যারেটি কোনও অঙ্কের জন্য একটি শূন্য-বিহীন মডুলোর সন্ধান করা হয়।

এখানে 7 ডিজিটের সর্বাধিক ব্যাখ্যা।


3

রুবি, 130 বাইট

... সাদা জায়গা গণনা করা হচ্ছে না

প্রোগ্রামিংয়ে নতুন, কেবল অংশ নিতে চেয়েছিলেন

c=0
(0..10**7).each do |x| 
  a=x.to_s.split('')
  c+=1 if !a.include?('0')&& a.uniq!.eql?(nil)&&a.all?{|y| x.modulo(y.to_i).zero?} 
end
p c

2
পিপিসিজিতে আপনাকে স্বাগতম! কোডটির দৈর্ঘ্য কমিয়ে আনতে সহায়তা করার জন্য রুবির কিছু অতিরিক্ত টিপস দেখুন
অ্যাডমবর্কবার্ক

3

সি, 122 বাইট

i,j,m,a;void f(){for(i=1;i<1e8;++i){for(m=0,j=i;j;j/=10){a=j%10;if(!a||m&(1<<a)||i%a)goto n;m|=1<<a;}printf("%d ",i);n:;}}

prettier:

i,j,m,a;
void f()
{
    for (i=1; i<1e8; ++i){
        for (m=0, j=i;  j;  j/=10) {
            a = j%10;
            if (!a || m&(1<<a) || i%a)
                goto n;
            m|=1<<a;
        }
        printf("%d ",i);
    n:;
    }
}

প্রতিটি পরীক্ষার্থীর জন্য i, আমরা এর অঙ্কগুলি aস্বল্প-এন্ডিয়ান ক্রমে পুনরাবৃত্তি করি , এর বিটগুলিতে দেখা অঙ্কগুলি লক্ষ্য রাখি m। যদি লুপটি সম্পূর্ণ হয়, তবে সমস্ত অঙ্কগুলিই এর কারণ iএবং আমরা কোনও শূন্য বা পুনরাবৃত্ত অঙ্ক দেখতে পাইনি, তাই এটি মুদ্রণ করুন, অন্যথায় আমরা বাহ্যিক লুপটি চালিয়ে যাওয়ার জন্য তাড়াতাড়ি প্রস্থান করি।


gotoকমান্ডটি ব্যবহার করা ভাল to
শন বেবারস


2

লুয়া, 129 বাইট

আমি খাঁটি অঙ্ক-ক্রাঞ্চিংয়ের জন্য স্ট্রিং পদ্ধতির সন্ধান করেছি, যা কিছুটা দ্রুততর বলে মনে হচ্ছে এবং সম্ভবত আমাকে কিছু বাইটও সংরক্ষণ করেছে। (আমি এই তত্ত্বটি পরীক্ষা করব, তবে লুয়া স্ট্রিং হ্যান্ডলিং অন্য কয়েকটি ভাষার তুলনায় বেশ ভার্জোজ is

for i=1,1e7 do t={[0]=1}j=i while j>0 do c=j%10 if t[c]or i%c>0 then break end t[c]=1 j=(j-c)/10 if j==0 then print(i)end end end

2

gawk, 99 বাইট

BEGIN{for(;8>(l=split(++i,a,_));printf f?f=_:i RS)for(j in a)f=i~0||i%(d=a[j])||i-d*10^(l-j)~d?1:f}

আমি এর ENDপরিবর্তে এটি ব্যবহার করতে পারলে আমি এটিকে 97 এ হ্রাস করতে পারতাম BEGIN, তবে তারপরে আপনাকে আসল আউটপুট শুরু করতে Ctrl-D টিপতে হবে, সিগন্যাল করে যে কোনও ইনপুট থাকবে না।

আমি এটা এমনকি 94 কমাতে পারে যদি আমি কিছুই পরিবর্তে লিখতে হবে এর BEGINবা END, কিন্তু তারপর আপনি রিটার্ন কী টিপুন একবার এটা শুরু করার জন্য, যা ইনপুট হিসাবে গণনা করা যেতে পারে হবে।

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

i ~ 0: সংখ্যায় একটি `0` থাকে? -> আবর্জনা
i% (d = a [j]): সংখ্যাটি বর্তমান সংখ্যা দ্বারা বিভাজ্য নয়? -> আবর্জনা
আইডি * 10 ^ (lj) ~ d: আমি এখনও এটির সংখ্যা থেকে বর্তমান সংখ্যাটি সরিয়েছি
                  : এখনও আছে এটি? -> আবর্জনা

আমার কোর 2 জুটিতে শেষ হতে 140 সেকেন্ড সময় নেয়।


2

জেলি , 11 বাইট

9œ!ṖẎgḌ$ƑƇḌ

এটি দুই সপ্তাহের পুরানো œ!পরমাণু ব্যবহার করে । টিআইওতে চালানোর পক্ষে যথেষ্ট দ্রুত।

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

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

9œ!ṖẎgḌ$ƑƇḌ  Main link. No arguments.

9            Set the return value to 9.
   R         Pop; yield [1, ..., 8].
 œ!          Promote 9 to [1, ..., 9] and generate all permutations of length k,
             each k in the right argument [1, ..., 8].
    Ẏ        Tighten; dump all digit lists in a single array.
         Ƈ   Comb; keep only digit lists for which the link to the left returns 1.
        Ƒ      Fixed; return 1 iff calling the link to the left returns its argument.
       $         Combine the two links to the left into a monadic chain.
      Ḍ            Undecimal; convert the digit list into an integer.
     g             Take the GCD of each digit and the integer.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.