বেশ মসৃণ চাল


18

পাটিগণিতের ক্ষেত্রে একটি এন-মসৃণ সংখ্যা , যেখানে এন একটি প্রদত্ত মৌলিক সংখ্যা, গাণিতিকভাবে একটি ধনাত্মক পূর্ণসংখ্যা হিসাবে সংজ্ঞায়িত হয় যার এন থেকে বড় কোনও মৌলিক কারণ নেই। উদাহরণস্বরূপ, 42টি 7-মসৃণ কারণ এটির সমস্ত মৌলিক কারণগুলি 7 এর চেয়ে কম বা সমান, তবে 44টি 7-মসৃণ নয় কারণ এতে প্রধান উপাদান হিসাবে 11ও রয়েছে।

এর নিজস্ব বর্গমূলের চেয়ে বেশি মূল উপাদানগুলির সাথে একটি সংখ্যা হিসাবে একটি সুন্দর মসৃণ সংখ্যা নির্ধারণ করুন । সুতরাং, বেশ মসৃণ সংখ্যার তালিকাটি নীচে তৈরি করা যেতে পারে:

  • (সম্পাদিত!) 1 এটি কোনও মৌলিক কারণগুলির সম্পূর্ণ অভাবের কারণে একটি সুন্দর মসৃণ সংখ্যা। (মনে রাখবেন যে এই প্রশ্নের মূল সংস্করণে 1 টি ভুল করে তালিকা থেকে বাদ দেওয়া হয়েছে, সুতরাং আপনি যদি এটিকে আপনার আউটপুট থেকে বাদ দেন তবে আপনাকে ভুল হিসাবে চিহ্নিত করা হবে না))
  • 4 (= 2 2 ) এবং 8 এর মধ্যে, সুন্দর মসৃণ সংখ্যাগুলি 2-মসৃণ, যার অর্থ তাদের 2 টি তাদের একমাত্র প্রধান উপাদান হিসাবে রয়েছে।
  • 9 (= 3 2 ) এবং 24 এর মধ্যে সুন্দর মসৃণ সংখ্যা 3-মসৃণ এবং তাদের প্রধান কারণগুলির মধ্যে 2 এবং 3 এস থাকতে পারে।
  • 25 (= 5 2 ) এবং 48 এর মধ্যে, সুন্দর মসৃণ সংখ্যা 5-মসৃণ এবং তাদের প্রধান কারণগুলিতে 2s, 3s এবং 5s থাকতে পারে।
  • এবং এরপরে, প্রতিটি মৌলিকটি প্রতিবারের পরবর্তী মৌলিক সংখ্যার বর্গক্ষেত্রের আপগ্রেড করা হয়।

বেশ মসৃণ সংখ্যার তালিকা স্থির করা হয়েছে, এবং নিম্নলিখিত হিসাবে শুরু হয়: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...

আপনার চ্যালেঞ্জটি কোড লেখা যা 10,000 (= 100 2 ) সহ সমস্ত চমত্কার মসৃণ সংখ্যাকে আউটপুট দেয় । তালিকার প্রতিটি নম্বরের মধ্যে কমপক্ষে একটি বিভাজক অবশ্যই থাকুক (এটি কোনও ধরণের - স্পেস, কমা, নিউলাইন, যে কোনও বিষয় নয়), তবে কোন অক্ষরটি ব্যবহৃত হয় তা সম্পূর্ণ অপ্রাসঙ্গিক।

যথারীতি সর্বনিম্ন বাইট গণনা জিতে যায় - স্পষ্টতই, কেবল তালিকা আউটপুট করা আপনার পক্ষে খুব উপকারী হবে না। শুভকামনা!


9
1 কেন খুব মসৃণ নয়?
— ডেনিস

আমরা তালিকাটি বিপরীত ক্রমে আউটপুট করতে পারি?
— ফাঁস নুন

5
OEIS A048098 (অতিরিক্ত অন্তর্ভুক্ত 1)
— লিকি নুন

1
@ মেগো "4 এর চেয়ে কম কোনও মসৃণ সংখ্যা নেই" বেশ পরিষ্কার। অগত্যা সুস্পষ্ট নয়, তবে অবশ্যই স্পষ্ট।
— ভাইরাপটার

1
@ ভাইরাপটার এটি পরিষ্কার নয় বলে ভোট দেওয়া হয়েছে কারণ এটি বলা হয়নি যে 1 টি মসৃণ নয়, তবে আপনার সংজ্ঞা এবং আপনার বহিষ্কারের বিবৃতি একে অপরের বিরোধিতা করছে।
— লিকি নুন

উত্তর:



7

জেলি , 12 বাইট

Æf>½S
³²ḊÇÐḟ

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

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

³²ḊÇÐḟ  Main link. No arguments.

³       Yield 100.
 ²      Square it to yield 10,000.
  Ḋ     Dequeue; yield [2, ..., 10,000].
   ÇÐḟ  Filter-false; keep elements for which the helper link returns 0.

Æf>½S   Helper link. Argument: n

Æf      Compute the prime factorization of n.
  >½    Compare the prime factors with the square root of n.
    S   Sum; add the resulting Booleans.

7

ব্র্যাচল্যাগ , 21 19 বাইট

1 টি বাইট আরও 1 বাইট অনুপ্রেরণার জন্য, ফ্যাটালাইজকে ধন্যবাদ।

100^:4reP$ph^<=P@w\

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

এখানে প্রায় 6 সেকেন্ড সময় নেয়।

100^:4reP$ph^<=P@w\
100                      100
   ^                     squared
    :4                   [10000,4]
      r                  [4,10000]
       eP                P is an integer in that interval (choice point),
        P$ph^<=P         P, prime factorized (from biggest to smallest),
                         take the first element, squared, is less than
                         or equal to P
               P@w       Write P with a newline,
                  \      Backtrack to the last choice point and make
                         a different choice until there is no more
                         choice and the program halts.

পূর্ববর্তী 21-বাইট সমাধান

100^:4reP'($pe^>P)@w\

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

এখানে প্রায় 6 সেকেন্ড সময় নেয়।

100^:4reP'($pe^>P)@w\
100                      100
   ^                     squared
    :4                   [10000,4]
      r                  [4,10000]
       eP                P is an integer in that interval (choice point),
        P'(      )       The following about P cannot be proved:
           $pe               one of its prime factor
              ^              squared
               >P            is greater than P
                  @w     Write P with a newline,
                    \    Backtrack to the last choice point and make
                         a different choice until there is no more
                         choice and the program halts.

100^:4reP$pot^<=P@w\একটি বাইট খাটো, কম মার্জিত যদিও।
— ই

@ ফ্যাটালাইজ ধন্যবাদ, আমি আরেকটি বাইটটি ছড়িয়ে দিয়েছি
— লিকি নুন

4

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

r=[1..10^4]
[n|n<-r,product[x|x<-r,x*x<=n]^n`mod`n<1]

আমি গল্ফ সময় নেই এই এখন, কিন্তু আমি পরীক্ষার জন্য একটি পদ্ধতি চিত্রিত করতে চান তাহলে nসুন্দর মসৃণ: গুন থেকে নম্বর 1থেকে sqrt(n)(অর্থাত কম্পিউট একটি গৌণিক), একটি উচ্চ ক্ষমতা পণ্য বাড়াতে, এবং এর ফলে যদি পরীক্ষা এর গুণিতক হয় n।

পরিবর্তন করুন r=[2..10^4]যদি 1আউটপুট হওয়া উচিত নয়।


এটি কোনও গল্ফিয়ার নয়, তবে আমি নিশ্চিত যে ঘনক্ষন যথেষ্ট হয় ( 8এটি প্রয়োজন)।
— নিল

2

পাইথ , 16 15 বাইট

জাকুবে 1 বাইট ধন্যবাদ।

tf!f>*YYTPTS^T4

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

tf!f>*YYTPTS^T4
             T   10
            ^T4  10000
           S^T4  [1,2,3,...,10000]
 f               filter for elements as T for
                 which the following is truthy: 
         PT          prime factorization of T
   f                 filter for factor as Y:
     *YY                 Y*Y
    >   T                greater than T ?
  !                  logical negation
t                remove the first one (1)

নিশ্চয় পাইথের একটি বর্গক্ষেত্র আছে? সুতরাং আপনি *dd যে ফাংশন দিয়ে প্রতিস্থাপন করতে পারেন ?
— কনর ও'ব্রায়েন

@ কনরও ব্রায়ান নোপ, পাইথের স্কোয়ার ফাংশন নেই।
— ফাঁস নুন


2

05 এ বি 1 ই , 16 14 13 বাইট

4°L¦vyf¤yt›_—

ব্যাখ্যা

4°L¦v             # for each y in range 2..10000
      yf¤         # largest prime factor of y
         yt       # square root of y
           ›_     # less than or equal
             —    # if true then print y with newline

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


4°10000 এর জন্য সংক্ষিপ্ত।
— আদনান

@ আদনান ধন্যবাদ! এক সম্পর্কে ভুলে গেছি।
— এমিগানা

2

মতলব, 58 57 56 52 48 বাইট

for k=1:1e4
if factor(k).^2<=k
disp‌​(k)
end
end

প্রতিটি সংখ্যার জন্য এটি পরীক্ষা করে যে সমস্ত উপাদান বর্গক্ষেত্র সংখ্যাগুলির চেয়ে বড় নয়। যদি হ্যাঁ, তবে সেই সংখ্যাটি প্রদর্শন করে।

এই পদ্ধতির গল্ফ করার জন্য @ লুইস মেন্ডোকে ধন্যবাদ


অন্য পদ্ধতির (50 বাইট):

n=1:10^4;for k=n
z(k)=max(factor(k))^2>k;end
n(~z)

প্রতিটি সংখ্যার জন্য এটির সর্বোচ্চ মৌলিক গুণকটি বর্গক্ষেত্রের চেয়ে কম কিনা তা গণনা করে। তারপরে এটি সূচকের জন্য ব্যবহার করে।


1
আপনার পূর্ববর্তী পদ্ধতিটি আরও খাটো করা যেতে পারে:for k=4:1e4,if factor(k).^2<=k,disp(k);end;end
— লুইস মেন্ডো

1

এসকিউএফ , 252 227 220

স্ট্যান্ডার্ড স্ক্রিপ্ট ফর্ম্যাট:

#define Q(A,B) for #A from 2 to B do{
Q(i,10000)if([i]call{params["j"];u=sqrt j;a=true;Q(k,u)a=a and((j%k!=0)or(j/k<u)or!([j/k]call{params["x"];q=true;Q(z,sqrt x)q=q and(x%z!=0)};q}))};a})then{systemChat format["%1",i]}}

যেমন কল করার সময় সংকলন শৃঙ্খলে প্রাক-প্রসেসর অন্তর্ভুক্ত করুন:

  • execVM "FILENAME.sqf"
  • call compile preprocessFile "FILENAME.sqf"

এটি সিস্টেম চ্যাট লগটিতে লিখেছে, যা এসকিউএফকে স্টাডাউটের সবচেয়ে কাছের জিনিস



1

পাইকে, 13 12 11 বাইট

T4^S#DP#X<!

এখানে চেষ্টা করুন!

(লিঙ্কটি কেবল 10 ^ 3 পর্যন্ত চলে যায় কারণ 10 ^ 4 বার আউট)

T4^S        -  one_range(10^4)
    #DP#X<! - filter_true(V, ^): (as i)
      P     -   factors(i)
       #X<! -  filter_true(V, ^):
        X   -   ^ ** 2
         <! -    not (i < ^)



0

আর, 97 বাইট

b=F;for(j in 1:1e4){for(i in which(!j%%1:j)[-1])if(which(!i%%1:i)[2]==i)b=i<=j^0.5;if(b)print(j)}

ungolfed

b <- F                               #Initializes
for (j in 1:1e4){                    #Loop across integers 1..10^4
    a <- which(!j%%1:j)[-1]          #Finds all factors
    for (i in a)                     #Loop across factors
         b <- which(!i%%1:i)[2]==i   #Tests primeness
         if(b) c <- i<=j^0.5         #If prime, tests smoothness
    if(c) print(j)                   #If biggest prime factor gives smooth
}                                    #result, Prints the number.

0

পাইথ, 12 বাইট

g#^ePT2tS^T4

1 অন্তর্ভুক্ত করে না।

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