এটি একটি সন্তুষ্টি নম্বর?


10

এই চ্যাট কথোপকথন দ্বারা অনুপ্রাণিত

একজন পরিতৃপ্ত সংখ্যা একটি সংখ্যা যার দশমিক উপস্থাপনা ফর্ম হয় abx, নিম্নলিখিত বৈশিষ্ট্য সঙ্গে:

  • xশেষতম পুনরাবৃত্তি প্রত্যয়, বা শেষে কোনও পুনরাবৃত্তি না থাকলে শেষ সংখ্যা ( 123333-> 3333, 545656-> 5656, 123-> 3)
  • bx( 123333-> 2, 55545656-> 4) এর পূর্বে একক অঙ্ক
  • aবাকি উপসর্গ ( 123333-> 1, 55545656-> 555)
  • a == c**b( **ক্ষয়ক্ষতি বোঝায়), যেখানে ( -> ( না )) cএর ক্ষুদ্রতম পুনরাবৃত্তি অংশের পুনরাবৃত্তির সংখ্যাx162333343 3 3 333 33

উদাহরণস্বরূপ, 8300সঙ্গে একটি পরিতৃপ্ত সংখ্যা a = 8, b = 3, c = 2, এবং x = 0024651না পরিতৃপ্ত নম্বর, কারণ x = 1, b = 5, a = 246এবং কোন পূর্ণসংখ্যা cমাফিক c^5 = 2461222এটি একটি সন্তোষজনক সংখ্যাও নয়, কারণ x = 222এবং b = 1এর জন্য কোনও অবশিষ্ট অঙ্ক নেই a

একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া n >= 100, আউটপুট nএকটি সন্তোষজনক নম্বর কিনা ।

উদাহরণ

8300: True (a=8, b=3, c=2, x=00)
24651: False 
1222: False
92555: True (a=9, b=2, c=3, x=555)
64633: True (a=64, b=6, c=2, x=33)
512944: True (a=512, b=9, c=2, x=44)
123: True (a=1, b=2, c=1, x=3)
822809: False 
376664: False 
723799: False 
1234: False 
34330000000: True (a=343, b=3, c=7, x=0000000)
92313131: True (a=9, b=2, c=3, x=313131)
16424442444: True (a=16, b=4, c=2, x=24442444)



সঙ্গে 8333করা হয় x,c,b,a=33,2,3,8এবং এর ফলে পরিতৃপ্ত?
জোনাথন অ্যালান

@ জোনাথান অ্যালান না, কারণ xএটি লোভী।
মেগো

1
@ জোনাথান অ্যালান পুনরাবৃত্তি অংশের কমপক্ষে দুটি সংখ্যা থাকা একটি সংখ্যা সন্তুষ্ট হওয়ার জন্য প্রয়োজনীয় শর্ত।
মেগো

উত্তর:


2

জেলি , 26 বাইট

খুব দীর্ঘ মনে হয়

DŒṖṖEÐƤḄ$ÐṀLÐṂṪµḢ*@0¦LµṪ⁼Ḍ

একটি মোনাডিক লিঙ্ক একটি পূর্ণসংখ্যার গ্রহণ করে এবং 1ইনপুটটি সন্তুষ্ট হয় এবং 0যদি তা না ফেরত ।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা-স্যুট দেখুন

কিভাবে?

DŒṖṖEÐƤḄ$ÐṀLÐṂṪµḢ*@0¦LµṪ⁼Ḍ - Link: integer, n    e.g. 8300
D                          - to decimal list          [8,3,0,0]
 ŒṖ                        - all partitions           [[[8],[3],[0],[0]],[[8],[3],[0,0]],[[8],[3,0],[0]],[[8],[3,0,0]],[[8,3],[0],[0]],[[8,3],[0,0]],[[8,3,0],[0]],[[8,3,0,0]]]
   Ṗ                       - pop (the "no tail" one)  [[[8],[3],[0],[0]],[[8],[3],[0,0]],[[8],[3,0],[0]],[[8],[3,0,0]],[[8,3],[0],[0]],[[8,3],[0,0]],[[8,3,0],[0]]]
         ÐṀ                - keep maximal under the operation: e.g. for [[8,3],[0],[0]]
        $                  -   last two links as a monad:
     ÐƤ                    -     for suffixes:   i.e. [[[8,3],[0],[0]],[[0],[0]],[[0]]]
    E                      -       all equal?         [0              ,1        ,1]
       Ḅ                   -     convert from binary  3
                           -          ...which yields [[[8],[3],[0],[0]],[[8,3],[0],[0]]]
            ÐṂ             - keep minimal under the operation:
           L               -   length
                           -          ...which yields [[[8,3],[0],[0]]]
              Ṫ            - tail (rightmost)         [[8,3],[0],[0]] 
               µ           - monadic chain separation
                Ḣ          - yield head and modify    [8,3]   ...leaving [[0],[0]]
                     L     - length (of modified)     2
                    ¦      - sparse application       (to the [8,3])
                   0       -   ...to index: 0         (to the rightmost digit, the 3)
                 *@        -   power (sw@p args)      [8,8]  ([8, 3*@2] = [8, 2*3] = [8,8])
                      µ    - monadic chain separation
                       Ṫ   - yield tail and modify    8   ...leaving [8]
                         Ḍ - from decimal (modified)  8
                        ⁼  - equal?                   1

1
চিন্তা করবেন না, আপনি একা নন এই অসম্পূর্ণ নির্যাতনের টুকরোটি আমার বক্তব্য প্রমাণ করা উচিত।
এরিক আউটগলফার

1
জেলি উত্তরটি যদি> 20 বাইট হয় তবে আপনি কিছুটা ভুল জানেন ...
ফ্যান্ট্যাক

1

পাইথন 3 , 141 বাইট

a=b=0;k=[]
c=[*input()];l=len(c)
while c[1:]>[]==k:a=a*10+b;b=int(c.pop(0));k=[i for i in range(2,l)if c==i*c[:l//i]];l-=1
a==(k+[1])[0]**b>q

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

পাইথন 3 , 144 বাইট

a=b='';k=[]
c=[*input()];l=len(c)
while c[1:]>[]==k:a+=b;b,*c=c;k=[i for i in range(2,l)if c==i*c[:l//i]];l-=1
int(a or-1)==(k+[1])[0]**int(b)>q

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

আউটপুট প্রস্থান কোড মাধ্যমে হয়


whileবাইট সংরক্ষণ করতে আপনি নিজের অবস্থার পরিবর্তন করতে পারেন : টিআইও
ফ্লিপট্যাক


0

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

import re
x,_,b,a=re.findall(r"((.+?)\2+)(.)(.*)",input()[::-1])[0]
if int(a[::-1])!=len(x)**int(b):d

পাইথন 3 , 107 বাইট

import re
x,_,b,a=re.findall(r"((.+?)\2+)(.)(.*)",input()[::-1])[0]
if int(a[::-1])!=len(x)**int(b):int('')

আউটপুটটি প্রস্থান কোড দ্বারা হয়।

এই কোডটি টিওতে কোনও ব্যাপ্তির ত্রুটির কারণে সঠিকভাবে চালিত হয় না। IDLE এ পুরোপুরি কাজ করে।


0

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

t=(d,n,l,i,r)=>d.slice((m=-l*i)-l,m).join``!=n?r:t(d,n,l,i+1,{p:r.p+n,r:r.r+1});p=(d,l,r)=>l<1?r:p(d,l-1,r.r<(z=t(d,(m=d.slice(-l).join``),l,1,{p:m,r:1})).r&&(z.r>1|l==1)?z:r);u=n=>(d=[...n]).slice(0,(q=(s=d.length)-(m=p(d,s,{p:"",r:0})).p.length-1)).join``==m.r**d[q]

function onChange() {
  var value = document.getElementById("input").value;
  console.log("%s => %s", value, u(value));
}
<input id="input" type="number" onchange="onChange()" />


0

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

yeesh।

n=`input()`
N=lambda p,l=0:N(n[:-len(p)],p,l+1)if n[-len(p):]==p else l
try:
    s=[(N(n[-i-1:]),n[-i-1:])for i,_ in enumerate(n)if N(n[-i-1:])!=1]
    if len(s)==0:s=[(1,n[-1])]
    q=max(s,key=lambda a:len(a[0]*a[1]))
    i=len(q[0]*q[1])
    print n[:-i-1]==`min(s)[0]**int(n[-i-1])`
except:print 0

Nএকটি পুনরাবৃত্ত ফাংশন যা একটি স্ট্রিংতে প্রত্যয় সাবস্ট্রিংয়ের পুনরাবৃত্তির সংখ্যাটি খুঁজে পায়। এটি মূলত সমস্ত সম্ভাব্য প্রত্যয়গুলির মধ্য দিয়ে যায়, প্রতিটি বার ব্যবহার করে বারবার সংখ্যাটি সন্ধান করে N; এটি সমস্ত মান বাদ দেয় যেখানে N==1তারা কোনও পুনরাবৃত্তি উল্লেখ করে না; যদি তালিকাটি খালি হয়ে যায় তবে শেষ অক্ষরের প্রত্যয়টি তালিকায় যুক্ত হবে।

তারপরে, দীর্ঘতম প্রত্যয়টি নেওয়া হয়, ( q), এটি যে পরিমাণ অক্ষর গ্রহণ করে তা পাওয়া যায় ( i), এবং a==c**bএটি পরীক্ষা করা হয় ( print ...)।

যদি পথে ত্রুটি ঘটে থাকে (যা প্রায়শই এটি ঘটে) তবে এটি exceptব্লকটিতে ধরা পড়ে ।

কোন পরামর্শ স্বাগত চেয়ে বেশি!

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