বিষয়বস্তু অপসারণ করুন


9

অস্পৃশ্য সংখ্যা α

অস্পৃশ্য সংখ্যাটি হ'ল ধনাত্মক পূর্ণসংখ্যা যা কোনও ধনাত্মক পূর্ণসংখ্যার (যথাক্রমে অস্পৃশ্য সংখ্যা সহ) সমস্ত সঠিক বিভাজকের যোগ হিসাবে প্রকাশ করা যায় না।

উদাহরণস্বরূপ, 4 সংখ্যাটি অস্পৃশ্য নয় কারণ এটি 9: 1 + 3 = 4 এর যথাযথ বিভাজকের যোগফলের সমান 5 সংখ্যাটি অস্পৃশ্য কারণ এটি কোনও ধনাত্মক পূর্ণসংখ্যার সঠিক বিভাজকের যোগফল নয়। 5 সহ 1 + 4 হ'ল 1 সহ পৃথক ধনাত্মক পূর্ণসংখ্যার যোগফল হিসাবে 5 লিখুন, তবে 4 যদি একটি সংখ্যা বিভাজন করে, 2ও করে, সুতরাং 1 + 4 কোনও সংখ্যার যথাযথ বিভাজকের সমষ্টি হতে পারে না (যেহেতু কারণগুলির তালিকায় 4 এবং 2 উভয়ই থাকতে হবে)।

5 নম্বরটি একমাত্র বিজোড় অস্পৃশ্য সংখ্যা বলে মনে করা হয়, তবে এটি প্রমাণিত হয়নি: এটি গোল্ডব্যাক অনুমানের কিছুটা শক্তিশালী সংস্করণ থেকে অনুসরণ করবে। β

অসীম বহু সংখ্যক অস্পৃশ্য সংখ্যা রয়েছে, এটি পল এর্ডস দ্বারা প্রমাণিত হয়েছিল।

অস্পৃশ্যদের কয়েকটি বৈশিষ্ট্য:

  • কোনও অস্পৃশ্য কোনও প্রধানের চেয়ে 1 টি বড় নয়
  • 5 ছাড়া, কোনও অস্পৃশ্য কোনও প্রাইমের চেয়ে 3 টি বড় নয়
  • কোন অস্পৃশ্য একটি নিখুঁত সংখ্যা
  • এখন অবধি, 2 এবং 5 বাদে সমস্ত অস্পৃশ্য যৌগিক।

উদ্দেশ্য

এমন একটি প্রোগ্রাম বা ফাংশন তৈরি করুন যা স্ট্যান্ডার্ড ইনপুট বা ফাংশন পরামিতিগুলিরn মাধ্যমে একটি প্রাকৃতিক সংখ্যা নেয় এবং প্রথম অস্পৃশ্য সংখ্যা প্রিন্ট করে ।n

আউটপুটটির অবশ্যই সংখ্যার মধ্যে পৃথকীকরণ থাকতে হবে তবে এটি যে কোনও কিছু হতে পারে (যেমন নিউলাইনস, কমা, স্পেসস ইত্যাদি)।

এটি কমপক্ষে কাজ করতে সক্ষম হওয়া উচিত 1 <= n <= 8153। বাস্তবে দেখা যায় যে বি-ফাইল OEIS এন্ট্রির জন্য প্রদত্ত উপর ভিত্তি করে তৈরি γ পর্যন্ত যায় n = 8153

স্ট্যান্ডার্ড লুফোলগুলি যথারীতি অনুমোদিত নয়।

উদাহরণ I / O

1    -> 2
2    -> 2, 5
4    -> 2, 5, 52, 88
10   -> 2, 5, 52, 88, 96, 120, 124, 146, 162, 188
8153 -> 2, 5, 52, 88, 96, 120, ..., ..., ..., 59996

এই , তাই বাইট সংখ্যা কমপক্ষে।


α - উইকিপিডিয়া , β - ম্যাথওয়ার্ল্ড , γ - ওইআইএস


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


এটি নিখুঁতভাবে অনুমানমূলক, যেহেতু আমি এখনও এটিকে কীভাবে সমাধান করব তা সম্পর্কে সত্যই ভাবা হয়নি: ফলাফলের সংখ্যার উপরের একটি উচ্চতর সীমা ধরে নিলে কি প্রতারণা করা হবে? বলুন, আমি যদি এমন কোড লিখি যা কেবলমাত্র 60,000 অবধি অস্পৃশ্য সংখ্যা খুঁজে পায়? ইনপুট সীমাটি কভার করার জন্য এটি যথেষ্ট হবে। তবে অবশ্যই আমি জানি যে আপনি সরবরাহ করেছেন আংশিক ফলাফলের ভিত্তিতে।
রেটো কোরাদি

আমার ধারণা এটি ঠিক হয়ে যাবে। এটি প্রযুক্তিগতভাবে ফলাফলগুলিকে হার্ডকোডিং করছে না, যতদূর আমি জানি স্ট্যান্ডার্ড ফাঁকগুলি লঙ্ঘন করে না। যতক্ষণ না এটি বিশ্রামের বাকী ফিট করে তা ঠিক থাকবে।
কেড

@vihan অবশ্যই না
কেড

উত্তর:


6

পাইথ, 21 বাইট

.f!fqZsf!%TYStTSh^Z2Q

সতর্কতা: অবিশ্বাস্যভাবে ধীর। টেস্ট রান এবং নীচে সময়।

$ time pyth -c '.f!fqZsf!%TYStTSh^Z2Q' <<< 3
[2, 5, 52]

real    2m46.463s
user    2m46.579s
sys 0m0.004s

এটি মূলত যতটা সম্ভব নিষ্ঠুর শক্তি, সম্ভাব্য নিঃসঙ্গ সংখ্যা স্কোয়ার প্লাস এক পর্যন্ত গুণককে পরীক্ষা করে।


4

সি, 104 বাইট

j,i,z,w;u(y){for(z=2;y;z++)for(w=0;(++w<z*z||0&printf("%i ",z)+y--)&&j^z;)for(i=j=0;++i<w;j+=i*!(w%i));}

Y > 20 এর জন্য কয়েক মিনিট সময় লাগবে তবে যাই হোক না কেন।


2

জাভা, 310 বাইট

class U{int[] p;U(int e){p=new int[(int)4e9];for(int i=1,c=0;c<e;i++)if(u(i)>0){System.out.println(i);c++;}}int p(int n){if(p[n]!=0)return p[n];int i,s=1;for(i=2;i<=n-1;i++)s+=n%i==0?i+(n/i!=i?n/i:0):0;return(p[n]=s);}int u(int n){if(n==1)return 0;for(int i=2;i<=(n-1)*(n-1);i++)if(p(i)==n)return 0;return 1;}}

গল্ফড পাশাপাশি আমি পারতাম তবে, এটি যথাযথ সময়ে চলেছে কিনা তা নিশ্চিত করতে আমি আরও আগ্রহী ছিল। অবরুদ্ধ সংস্করণ সম্ভবত আরও আকর্ষণীয়

public class Untouchable {
    int[] properDivisorSumMap;


    public Untouchable(int estimatedMaxium){
        properDivisorSumMap = new int[(estimatedMaxium-1)*(estimatedMaxium-1)];
    }


    public int properDivisorSum(int n){
        if(properDivisorSumMap[n] != 0){
            return properDivisorSumMap[n];
        }

        int sum = 1;
        for(int i=2;i<=(int)Math.sqrt(n);i++){
            if(n%i==0){
                sum+=i;
                if(n/i != i){
                    sum+=n/i;
                }
            }
        }
        properDivisorSumMap[n] = sum;
        return sum;
    }


    public boolean untouchable(int n){
        if(n==1){
            return false;
        }
        for(int i=2;i<=(n-1)*(n-1);i++){
            if(properDivisorSum(i) == n){
                return false;
            }
        } 
        return true;
    }


    public static void main(String[] args){
        Untouchable test = new Untouchable(8480);

        int elements = Integer.parseInt(args[0]);

        for(int i=1,count=0;count < elements;i++){
            if(test.untouchable(i)){
                System.out.printf("%4d: %4d%n",count,i);
                count++;
            }
        }
    }
}

1

যান, 396 বাইট

সত্যিই গল্ফড নয়, তবে এটি প্রয়োজনীয় ব্যাপ্তিগুলির সমস্ত কিছুই করতে পারে। প্রায় min 20 মিনিটে চলে এবং ~ 7 গিগাবাইটের (এন থেকে স্বতন্ত্র) প্রয়োজন। 59997 স্কোয়ার পর্যন্ত সমস্ত সংখ্যার জন্য বিভাজকের যোগফল গণনা করার জন্য একটি বিশালাকার অ্যারে তৈরি করে।

func untouchable(n int) {
    const C = 59997
    const N = C * C
    s := make([]uint16, N)
    for d := 1; d < N; d++ {
        for i := 2 * d; i < N; i += d {
            v := int(s[i]) + d
            if v > C {
                v = C + 1 // saturate at C+1
            }
            s[i] = uint16(v)
        }
    }
    var m [C]bool
    for i := 2; i < N; i++ {
        if s[i] < C {
            m[s[i]] = true
        }
    }
    for i := 2; n > 0; i++ {
        if !m[i] {
            println(i)
            n--
        }
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.