বেশ মসৃণ চাল


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

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


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.