এটি কি তিন অঙ্কের একটিতে শেষ হয়?


27

একটি nonnegative পূর্ণসংখ্যার দেওয়া, এটি কোনও সংখ্যক সামঞ্জস্য সংখ্যায় শেষ হয় এটি তিনটি সংখ্যার শেষ কিনা কিনা তা ফেরত দিন। অন্য কথায়, সংখ্যাটি বেস-এনতে প্রতিনিধিত্ব করা দরকার, এনটি শূন্যের চেয়ে বড় পূর্ণসংখ্যা।

বিধি

উদাহরণ

সত্য:

5   
73  
101 
1073
17
22
36
55
99  

মিথ্যা:

8
18
23
27
98
90
88
72
68

মুষ্টিমেয় বিপুল সংখ্যক:

46656 true
46657 true
46658 true
46659 true
46660 true
46661 false
46662 false
46663 true
46664 false
46665 true
46666 true
46667 false
46668 false
46669 false
46670 true
46671 true

1
Weirdly ইউনারী আচরণ করবে যেহেতু না, এটা weirdly আচরণ নয়, একটি অ-নেতিবাচক পূর্ণসংখ্যা এর ইউনারী উপস্থাপনা nঠিক হয় n 1যেমন গুলি, 0 = ()₁, 3 = (111)₁, 10 = (1111111111)₁, ইত্যাদি
এরিক Outgolfer

6
@ এরিকথ আউটগল্ফার এটি সম্পূর্ণ ভিন্ন আচরণ করে; উদাহরণস্বরূপ আপনি 1-কে n-itshift এ ভাগ করতে পারবেন না।
wizzwizz4

3
কী সামঞ্জস্যপূর্ণ পূর্ণসংখ্যা বেস মানে? (এছাড়াও, নিয়মে অ্যানারি বাদ দেওয়ার পরিবর্তে আপনি কেবল N ≥ 2 নির্দিষ্ট করতে পারেন)
লিন

1
@ লিন আপনি যেমন সাম্রাজ্যীয় ইউনিট বা সময়ের সাথে দেখেন এমন অবস্থান-নির্ভর র‌্যাডিক্সের বিপরীতে যেমন একটি একক র‌্যাডিক্স, উদাহরণস্বরূপ বেস দশের একটি অবস্থানগত স্বরলিপি।
HAEM

1
যোগসূত্র হিসাবে লিন, আমি যুক্তিযুক্ত, নেতিবাচক, জটিল ইত্যাদি ভিত্তিগুলিও বাদ দেওয়ার চেষ্টা করছিলাম। আপনার দ্বিতীয় দফার হিসাবে, আনারি সম্পর্কে নিয়মটি অন্তর্ভুক্ত করা বা আনারিকে বাদ দেওয়া নয়। ভাষা আইনানুগকরণ সম্পর্কে আমার উপলব্ধি যতক্ষণ না ভেবেছিল তার চেয়েও দুর্বল, "অপরিজ্ঞাত আচরণ" এর অর্থ "বাস্তবায়নকারী দল যা চায়", যার অর্থ আমি যাচ্ছিলাম।
HAEM

উত্তর:


10

জেলি , 7 বাইট

bRṫ€3ċJ

ঘাঁটির সংখ্যা (শূন্যহীন সত্যবাদী, শূন্য হওয়া মিথ্যা) ফিরিয়ে দেয় যাতে ইনপুটটি তিনটি অঙ্কের একটিতে শেষ হয়।

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

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

bRṫ€3ċJ  Main link. Argument: n

 R       Range; yield [1, ..., n].
b        Base; convert n to bases 1, ..., n.
  ṫ€3    Tail each 3; remove the first two elements of each digit array.
      J  Indices of [n]; yield [1].
     ċ   Count the number of times [1] appears in the result to the left.

10

জাভাস্ক্রিপ্ট (ES7), 43 40 39 বাইট

f=(n,b)=>n<b*b?0:n%b==1&n<b**3|f(n,-~b)

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

মন্তব্য

f = (n,           // given n = input
        b) =>     // and using b = base, initially undefined
  n < b * b ?     // if n is less than b²:
    0             //   n has less than 3 digits in base b or above -> failure
  :               // else:
    n % b == 1 &  //   return a truthy value if n is congruent to 1 modulo b
    n < b**3 |    //   and n is less than b³ (i.e. has less than 4 digits in base b)
    f(n, -~b)     //   or the above conditions are true for some greater value of b






3

গণিত, 43 বাইট

!FreeQ[IntegerDigits[#,2~Range~#],{_,_,1}]&

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

অথবা এটি অনলাইন চেষ্টা করুন! (বড় সংখ্যা)

মার্টিন এন্ডার 3 টি বাইট সংরক্ষণ করেছেন


!FreeQ[#~IntegerDigits~Range@#,{_,_,1}]&আপনি যদি IntegerDigits::ibase: Base 1 is not an integer greater than 1.সতর্কতাটি দেখে আপত্তি না করেন তবে কিছুটা ছোট । (এটি এখনও সঠিক উত্তরগুলি দেয়))
মিশা লাভরভ

3

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 35 বাইট

Or@@Array[x~Mod~#==1<x/#^2<#&,x=#]&

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

কোনও সম্ভাব্য বেস i এর জন্য n% i = 1 এবং i 2 <n <i 3 কিনা তা স্পষ্টভাবে যাচাই করে । গল্ফিংয়ের উদ্দেশ্যে, বৈষম্যটিকে 1 <n / i 2 <i তে পুনরায় সাজানো হয় , যাতে এটি সাম্যের দিকে বেঁধে রাখা যায়।




2

এপিএল (ডায়ালগ ইউনিকোড) , 21 20 14 এসবিসিএস বাইট করে

-5 @nn ধন্যবাদ।

খাঁটি গণিত সমাধান (আসলে কোনও বেস রূপান্তর করে না) এবং এইভাবে খুব দ্রুত।

3∊⊢(|×∘⌈⍟)⍨1↓⍳

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

⊢()⍨1↓⍳ একটিকে ɩ ndices 1… আর্গুমেন্ট এবং যুক্তি থেকে বাদ দেওয়া হয়েছে , প্রয়োগ করুন:

| বিভাগ অবশিষ্ট

×∘⌈ বৃত্তাকার আপ

 লগ এন আর্গুমেন্ট

3∊ তিন জন কি এর সদস্য?


আপনি আর্গুমেন্ট সোয়াপিং মান কৌতুক 1 সংরক্ষণ করতে পারেন:⊢(∨/(3=∘⌈⍟)∧1=|)⍨1↓⍳
ngn

ধন্যবাদ পরের বারে, কেবল এটিকে সম্পাদনা করতে নির্দ্বিধায় (যদি আপনার মনে হয়)।
অ্যাডম

ঠিক আছে. আপনার পরিচালনা করার জন্য আমি আরও জটিল উন্নতি এখানে রেখেছি - এটি আপনার অন্যান্য সমাধানের মতোই সংক্ষিপ্ত করে (⊂1 3)∊⊢(⌈|,¨⍟)⍨1↓⍳
তুলেছে

1
3∊⊢(|×|×∘⌈⍟)⍨1↓⍳
ngn

2
@ জিএনএন 1=⌈a⍟b, a≤ba=b0=a|b0=b|b
অ্যাডম 15'18


1

হুশ , 15 বাইট

V§&o=1→o=3LṠMBḣ

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

ব্যাখ্যা

V§&(=1→)(=3L)ṠMBḣ  -- implicit input, for example: 5
             ṠMB   -- map "convert 5 to base" over..
                ḣ  --   range [1..5]
                   -- [[1,1,1,1,1],[1,0,1],[1,2],[1,1],[1,0]]
V                  -- does any of the elements satisfy the following
 §&( 1 )( 2 )      --   apply functions 1,2 and join with & (logical and)
         =3L       --     is length equals to 3?
    =1→            --     is last digit 1?


1

সি, 60 বাইট

একটি ফাংশন যা অ-শূন্যকে প্রত্যাবর্তন করে যদি আর্গুমেন্টটি 1: এ শেষ হওয়া তিন-অঙ্কের সংখ্যা হিসাবে উপস্থাপন করা যায়

i,j;f(n){for(j=0,i=sqrt(n);i>cbrt(n);)j+=n%i--==1;return j;}

দ্রষ্টব্য: এটি জিসিসির সাথে কাজ করে, যেখানে কার্যগুলি অন্তর্নির্মিত। অন্যান্য সংকলকগুলির জন্য, আপনাকে সম্ভবত এটি নিশ্চিত করতে হবে যে আর্গুমেন্ট এবং রিটার্নের ধরনগুলি জানা আছে:

#include<math.h>

ব্যাখ্যা

সর্বনিম্ন বেস যা n3 সংখ্যার মধ্যে প্রতিনিধিত্ব করা হয় ⌊∛n⌋, এবং সর্বনিম্ন বেস যা n2 ডিজিটের মধ্যে প্রতিনিধিত্ব করা হয় হয় ⌊√n⌋, তাই আমরা কেবল পরীক্ষা সংখ্যা সর্বসম কিনা 1 থেকে 3 অঙ্ক সীমার মধ্যে কোনো ঘাঁটি modulo করতে। শর্তটি সন্তুষ্ট করে কতগুলি ঘাঁটি রয়েছে তার সংখ্যা গণনা করি, যথাযথ হিসাবে শূন্য (সত্যবাদী) বা শূন্য (মিথ্যা) মান প্রদান করে।

পরীক্ষা প্রোগ্রাম

অবস্থানগত পরামিতি হিসাবে যে কোনও সংখ্যক ইনপুট পাস করুন:

#include<stdio.h>
int main(int c,char**v)
{
    while(*++v)
        printf("%s => %d\n", *v, f(atoi(*v)));
}

1

এপিএল (ডায়ালগ ইউনিকোড) , 19 বাইট এসবিসিএস

ডেনিস পদ্ধতি

(⊂,1)∊2↓¨⊢⊥⍣¯1¨⍨1↓⍳

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

(⊂,1)∊ এর [1]সদস্য

2↓¨ দুটি উপাদান প্রতিটি থেকে বাদ পড়েছে

⊢⊥⍣¯1¨⍨ আর্গুমেন্ট প্রতিটি ঘাঁটিতে প্রতিনিধিত্ব করে

1↓⍳যুক্তির মাধ্যমে one ndices 1  থেকে একজন বাদ পড়েছে ?



0

পাইট , 35 33 বাইট

←ĐĐ3=?∧∧:ŕĐ2⇹Ř⇹Ľ⅟⌊⁺3=⇹Đ2⇹Ř%*ž1⇹∈;

ব্যাখ্যা:

←ĐĐ                                             Push input onto stack 3 times
   3=?  :                       ;               If input equals 3, execute code after the question mark;otherwise, execute code after the colon. In either case, afterwards, execute the code after the semicolon
      ∧∧                                        Get 'True'
        :                                       Input not equal to 3
         ŕ                                      Remove 'False'
          Đ2⇹Ř                                  Push [2,3,...,n]
              ⇹Ľ⅟⌊⁺                             Push [floor(log_2(n))+1,floor(log_3(n))+1,...,floor(log_n(n))+1]
                   3=                           Is each element equal to 3
                     ⇹                          Swap the top two elements on the stack (putting n back on top)
                      Đ2⇹Ř                      Push [2,3,...,n]
                          %                     Push [n%2,n%3,...,n%n]
                           *                    Multiply [n%x] by the other array (i.e. is floor(log_x(n))+1=3?)
                            ž                   Remove all zeroes from the array
                             1⇹∈                Is 1 in the array?
                                ;               End conditional
                                                Implicit print

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


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