সুপারবান্ডান্স নির্ধারণ করুন De


21

একটি বৃহত্তর সংখ্যাটি একটি পূর্ণসংখ্যা n যা বিভাজকের যোগফলের সাথে তার অনুপাতের জন্য একটি নতুন উপরের সীমাটি সেট করে σ অন্য কথায়, n সমস্ত ধনাত্মক পূর্ণসংখ্য x এর জন্য n এর চেয়ে কম হ'ল এবং কেবল যদি n হয় তবে :

σ(n)n>σ(x)x

কয়েকটি মানের জন্য:

n   σ(n)   σ(n)/n   superabundant
1   1      1.0000   yes
2   3      1.5000   yes
3   4      1.3333   no
4   7      1.7500   yes
5   6      1.2000   no
6   12     2.0000   yes
7   8      1.1429   no
8   15     1.8750   no
9   13     1.4444   no

এগুলির একটি দীর্ঘ তালিকা (পরীক্ষার ক্ষেত্রে) OEIS A004394 এ পাওয়া যাবে ।

একটি অত্যন্ত প্রস্তাবিত নেতিবাচক পরীক্ষার কেস (যদি আপনার দোভাষী এটি পরিচালনা করতে পারেন) এটি 360360, কারণ এটি শেষ সুপ্রাইভান্ড্যান্ট সংখ্যার সাথে সম্পর্কিত।

চ্যালেঞ্জ

আপনার প্রোগ্রামটি একটি একক ধনাত্মক পূর্ণসংখ্যার নেওয়া উচিত এবং সেই পূর্ণসংখ্যাটি সুপ্রেবন্ড্যান্ট কিনা তা উপস্থাপন করে সত্যবাদী বা মিথ্যা মান নির্ধারণ করে।

এটি , বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins

উত্তর:


7

জেলি , 7 বাইট

Æs÷$ÞṪ=

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

জেলি , 8 বাইট

Æs÷$ÐṀ⁼W

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

পরীক্ষা স্যুট!

ব্যাখ্যা

Programs ÷ $ ÐṀ⁼W ~ সম্পূর্ণ প্রোগ্রাম (একাদিক)।

    ~ Elements উপাদানগুলিকে সর্বাধিক লিঙ্ক মান (অটো-রেঞ্জিফাইস) সহ রাখুন।
~s ~ বিভাজকের যোগফল।
  Element $ the বর্তমান উপাদান দ্বারা ভাগ করুন।
      SingleW a ইনপুটটির সাথে একটি সিঙ্গেলনে মোড়ানো সমতা পরীক্ষা করুন।
         ~ (360360 এর মতো পূর্ণসংখ্যার জন্য)

আমি মনে করি আপনি Æs÷$ÐṀ=7 বাইটের জন্য করতে পারেন । আমি ÐṀরঙিন বুঝতে পারিনি, এটি জানার জন্য দরকারী।
dylnan

পছন্দ করুন যদিও এটি অনলাইনে পরীক্ষা করা যায় না, এটি ব্যর্থ হয় 360360। প্রকৃতপক্ষে, এটি আমার প্রাথমিক সংস্করণ ছিল
মিস্টার এক্সকোডার

কেন এটি ব্যর্থ হবে 360360?
dylnan

@ এলডানান 360360হ'ল এটি প্রথম সংখ্যা যা ব্যর্থ হবে (আমার মনে হয়), কারণ ফলাফলটি টাই করা এটি প্রথম সংখ্যা যা এর আগে ঘটেছিল। (এবং আমাদের ফলাফলটি হবে [0, 1])
মিস্টার এক্সকোডার

@ মিঃ এক্সকোডার আমি দেখছি, ধন্যবাদ
ডাইলানান



4

অক্টাভা , 41 বাইট

@(n)([~,p]=max((x=1:n)*~mod(x,x')./x))==n

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

ব্যাখ্যা

@(n)                                       % Define anonymous function of n
                x=1:n                      % Range from 1 to n. Call that x
                        mod(x,x')          % n×n matrix of all pair-wise moduli
                       ~                   % Logical negate. True means it's a divisor
               (     )*                    % Matrix-multiply x times the above matrix
                                           % (gives the dot product of vector x times
                                           % each column of the matrix)
                                 ./x       % Divide each column by each entry in x
     [~,p]=max(                     )      % Index of first occurrence of maximum
    (                                )==n  % Does it equal n?

3

জে , 35 বাইট

সমস্যাটি সন্ধান করার জন্য এবং এটির সমাধানের জন্য কোয়েলে মিঃ এক্সকোডারকে ধন্যবাদ!

[:([:*/{:>}:)@(%~>:@#.~/.~&.q:)1+i.

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


1
এটি ব্যর্থ হয় 360360(আরও তথ্যের জন্য চ্যালেঞ্জটি দেখুন: একটি অত্যন্ত প্রস্তাবিত নেতিবাচক পরীক্ষার কেস 360360, কারণ এটি শেষ সুপ্রাইভান্ড্যান্ট সংখ্যার সাথে সম্পর্কিত ))
মিঃ এক্সকোডার

1
+3 বাইটের জন্য স্থির। এটি অনলাইনে চেষ্টা করুন । গল্ফিং উপর কাজ। আমি #.~প্রচুর ব্যবহার পছন্দ করি (সত্যি বলতে পুরো ডিভাইডারের যোগফলটি খুব সুন্দর)। বিটিডব্লিউটি যা ভুল ছিল তা হ'ল, যদিও করার চিন্তাভাবনা {:=>./চতুর হলেও এটি প্রশ্নের "অংশের চেয়ে বড়" সন্তুষ্ট করে না।
কোলে

1
এখানে কি আমি সিগমা ফাংশন, যা একই দৈর্ঘ্য বর্তমানে এ প্রতিস্থাপন নিয়ে এসেছেন আছে: (1#.{:(]*0=|~)])\ । যদিও এতে কিছু ভুল আছে, সম্ভবত আপনার কিছু চিন্তা আছে?
কোলে

1
ভাজক এর সমষ্টি ক্রেডিট @cole মধ্যে রজার হুই যেতে ফাংশন এই প্রবন্ধ । আমি আরও একটি সিগমা ফাংশন লিখতে শুরু করেছিলাম তবে 9 বাইটে পৌঁছানোর পরে থামলাম এবং সিদ্ধান্ত নিলাম যে এটি প্রাথমিক কারণের সাথে সংক্ষিপ্ত হবে না। সমস্যা সমাধানের জন্য ধন্যবাদ!
গ্যালেন ইভানভ

@ কোল বিভাজনকারীদের যোগফলের সংক্ষিপ্ততম অন্যান্য ক্রিয়াটি আমি এনেছি: (1#.]*0=|~)1+i.এটি একটি হুক এবং এটি সহজে জায়গায় জায়গায় ফিট করে না :)
গ্যালেন ইভানভ

3

জুলিয়া 0.6 , 52 বাইট

n->indmax(sum(x for x=1:m if m%x<1)//m for m=1:n)==n

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

এই সমাধানটি সমতার ক্ষেত্রে যথাযথতা নিশ্চিত করতে যুক্তিসঙ্গত সংখ্যা ব্যবহার করে। (360360 পরীক্ষা প্রায় 10 মিনিট সময় নিয়েছে।)

ভাসমান পয়েন্ট ব্যবহার করে, 2 বাইটগুলি বাম বিভাজনের সাহায্যে সংরক্ষণ করা যায়:

n->indmax(m\sum(x for x=1:m if m%x<1)for m=1:n)==n

3

পাইথ , 14 বাইট

( FryAmTheEggman 1 বাইট সংরক্ষণ করেছে)

qh.Mcs*M{yPZZS

এখানে চেষ্টা করুন! অথবা আরও পরীক্ষার কেস দেখুন।

কেবলমাত্র আমার বাধ্যতামূলক পাইথ জমা যা সম্ভবত গল্ফযোগ্য।

কিভাবে?

qh.Mcs * M {yPZZS ~ সম্পূর্ণ প্রোগ্রাম। প্রশ্ন = ইনপুট

             এস ~ রেঞ্জের পূর্ণসংখ্যা [1, কিউ]।
  .এম max সর্বাধিক ফাংশন মান সহ উপাদানগুলি পান।
    cs * M {yPZZ ~ কী ফাংশন: একটি ভেরিয়েবল জেড ব্যবহার করে
         yPZ Z জেডের প্রধান কারণগুলির শক্তি
        ~ Ed অনুলিপি।
      * এম each প্রতিটি পণ্য।
     s ~ এবং সংক্ষিপ্ত।
    সি জেড Z জেড দ্বারা বিভক্ত
 h ~ প্রথম উপাদান।
q the ইনপুট সহ সমতা পরীক্ষা করুন। সত্য বা মিথ্যা ফলস্বরূপ।

3

05 এ বি 1 ই , 10 বাইট

LÑOā/ZQ¨_P

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

ব্যাখ্যা

L            # push range [1 ... input]
 Ñ           # divisors of each
  O          # sum of each
   ā/        # divide each by its 1-based index
     Z       # get max
      Q      # compare to each
       ¨     # remove the last element
        _    # logical negation
         P   # product

আমি মনে করি (যদিও আমি নিশ্চিত নয়) এই জন্য ব্যর্থ হয় 360360(আরো বিস্তারিত জানার জন্য চ্যালেঞ্জ দেখুন: । এক অত্যন্ত বাঞ্ছনীয় নেতিবাচক পরীক্ষা মামলা, 360360 কারণ এটি গত অতি প্রচুর নম্বর দিয়ে বেঁধে )।
মিঃ এক্সকোডার 15

@ মিঃ এক্সকোডার: সত্য। এটি স্থির করে তবে এখন এটি করার আরও ভাল উপায় হতে পারে।
Emigna



2

গণিত, 53 50 বাইট

a=Tr@Divisors@#/#&;AllTrue[a@#-Array[a,#-1],#>0&]&

খাঁটি ফাংশন। ইনপুট এবং রিটার্ন হিসাবে Trueবা Falseআউটপুট হিসাবে একটি পূর্ণসংখ্যা নেয় ।


Tr@Divisors@#কাজ মত কিছু করতে চান ?
ব্যবহারকারী 202729

1

জাপট ভি 2.0a0, 12 16 বাইট

ঘুম বঞ্চিত মস্তিষ্ক এর আর কোনও উন্নতি করতে পারে না বলে মনে হয়!

রিটার্নস 1truthy জন্য অথবা 0falsey জন্য।

Æâ x÷U >Xâ x÷XÃ×

চেষ্টা করে দেখুন

হ্যান্ডেল করতে 4 বাইট ত্যাগ করা 360360


ব্যাখ্যা

  • পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট U
  • Æ Ãথেকে পূর্ণসংখ্যার একটি অ্যারে তৈরি 0করে U-1এবং নিম্নলিখিত ফাংশন হিসাবে প্রতিটি পাস করে X
  • âএর বিভাজন পায় U
  • ÷Uদ্বারা প্রতিটি ভাগ U
  • x ফলাফলের যোগফল।
  • এর বিভাজন পায় X
  • ÷Xদ্বারা প্রতিটি ভাগ X
  • x ফলাফলের যোগফল।
  • > প্রথম ফলাফলটি দ্বিতীয়টির চেয়ে বেশি কিনা তা পরীক্ষা করে।
  • × বহুবৃত্তির সাহায্যে বুলিয়ানের ফলাফলগুলি হ্রাস করে।

1
যদি আপনার বর্তমান পদ্ধতির আপনার ব্যাখ্যার সাথে মেলে, এটির জন্য 360360বা এই জাতীয় সংখ্যার জন্য ব্যর্থ হয় : একটি অত্যন্ত প্রস্তাবিত নেতিবাচক পরীক্ষার কেস (যদি আপনার দোভাষী এটি পরিচালনা করতে পারেন) হয় এটি 360360, কারণ এটি সর্বশেষ সংখ্যার সাথে সংযুক্ত
জনাব এক্সকোডার

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

@ মিঃ এক্সকোডার: এখনই ঠিক করা হয়েছে, আমি এটিতে আরও উন্নতি করতে পারি কিনা তা দেখতে আবার ফিরে আসতে হবে।
শেজি

0

এপিএল + উইন, 37 বাইট

 ↑1=⍒⌽(+/¨((0=(⍳¨n)|¨n)×⍳¨n)~¨⊂0)÷n←⍳⎕

স্ক্রিন ইনপুট জন্য অনুরোধ জানানো হয়।


0

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

s(n,j,k){for(j=k=0;j++<n;)k+=n%j?0:j;n=k;}f(n,i,r){for(i=r=0;++i<n;)r=1.*s(n)/n<1.*s(i)/i?:r;r=!r;}

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

সি, 108 বাইট

float s(n,j,k){for(j=k=0;j++<n;)k+=n%j?0:j;return k;}f(n,i,r){for(i=r=0;++i<n;)s(n)/n<s(i)/i&&++r;return!r;}

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


সুতরাং, কেন sএকটি ভাসা ফেরত প্রয়োজন?
নিসা

@StephenLeppik করার জন্য ব্যবহার ভাসা বিভাজন পরিবর্তে বিভাজন পূর্ণসংখ্যা যখন তুলনা s(n)/nকরা s(i)/i
স্টেডিবক্স



0

ফানকি , 79 বাইট

d=n=>fors=i=0i<=n i++s+=i*!n%i
f=n=>{forc=1c<n c++if(d(n)/n)<=d(c)/c return0 1}

ব্যাখ্যা

এই প্রথম ফাংশন সংজ্ঞায়িত dযা σফাংশন, এবং এই golfed সংস্করণ

function d(n){
    var s = 0;
    for(var i=0; i<n; i++){
        if(n%i == 0){
            s += i;
        }
    }
    return s;
}

আমরা 0 তে সেট করতে পারি, কারণ i*n%0সর্বদা সমান হবে 0*..., এভাবে0

এর পরবর্তী অর্ধেকটি ফাংশনটি সংজ্ঞায়িত করে f, যা সুপ্রেবান্ডাস ফাংশন, এবং এটি কেবল গল্ফযুক্ত রূপ

function f(n){
    for(var c=1; c<n; c++){
        if( (d(n)/n) <= (d(c)/c) ){
            return 0;
        }
    }
    return 1;
}

এবং এটি কেবল পরীক্ষা করে, চ্যালেঞ্জের অনুমান অনুসারে, 1 থেকে এন -1 পর্যন্ত সমস্ত সংখ্যার একটি আছে d(n)/n চেয়ে কম রয়েছে।

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



0

কাস্তে , 9 বাইট

εü<m§ṁ/Ḋṫ

এটি অনলাইন চেষ্টা করুন! 360360 পরীক্ষার ক্ষেত্রে খুব ধীর।

ব্যাখ্যা

εü<m§ṁ/Ḋṫ  Implicit input, say n=6.
        ṫ  Decreasing range: [6,5,4,3,2,1]
   m       Map this function (example argument k=4):
       Ḋ    Divisors of k: [1,2,4]
    §ṁ      Map and sum
      /     division by k: 7/4
           Result: [2,6/5,7/4,4/3,3/2,1]
 ü         Remove duplicates by
  <        strict comparison. This greedily extracts a non-decreasing subsequence: [2]
ε          Is it a singleton list? Yes.

আমি পেয়েছি £ü¤<§ṁ/ḊN। অতিরিক্ত সংখ্যার পুরো তালিকা তৈরি করা হচ্ছে
এইচ.পি.উইজ 20'17

0

পার্ল 5, 84 বাইট

say!grep$a[-1]<=$a[$_],0..(@a=map{$i=$_;my$j;map{$i%$_ or$j+=$_/$i}1..$i;$j}1..<>)-2

প্রয়োজন -E (বিনামূল্যে)

গল্ফযুক্ত স্পেসিফিকেশন এর একটি সহজ বাস্তবায়ন


0

এপিএল (এনএআরএস), 61 টি চর, 122 বাইট

r←f w;m;k
r←m←0
r+←1⋄k←r÷⍨11πr⋄→3×⍳r≥w⋄→2×⍳∼m<k⋄m←k⋄→2
r←k>m

11π হ'ল ফাংশনের যোগফল

  (⍳9),¨ f¨1..9
1 1  2 1  3 0  4 1  5 0  6 1  7 0  8 0  9 0 
  f 360360
0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.