প্রধান কারণগুলি সন্ধান করুন


23

এই টাস্কে আপনাকে একটি প্রোগ্রাম লিখতে হবে, এটি একটি সংখ্যার প্রধান উপাদানগুলির গণনা করে। ইনপুটটি প্রাকৃতিক নম্বর 1 <n <2 ^ 32। আউটপুটটি নিম্নোক্ত বিন্যাসে সংখ্যার প্রাথমিক কারণগুলির একটি তালিকা। এক্সপ্রেশনগুলি যদি হয় তবে তাদের বাদ দিতে হবে 1. কেবলমাত্র আউটপুট প্রাইম সংখ্যা। (ধরে নিচ্ছি ইনপুটটি 131784):

131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19

একই পরিমাণ সাদা জায়গা ব্যবহারের প্রয়োজন হয় না; হোয়াইটস্পেস উপযুক্ত যেখানেই .োকানো যেতে পারে। আপনার প্রোগ্রাম কোনও ইনপুট জন্য 10 মিনিটের কম পরে সম্পন্ন করা উচিত। স্বল্পতম অক্ষরের সাথে প্রোগ্রামটি জয়ী হয় ins


9
বোনাস পয়েন্টস যদি আপনার প্রোগ্রামটি 6857599914349403977654744967172758179904114264612947326127169976133296980951450542789808884504301075550786480230401979540275467066031861496626646136 এ!
জোয়ে অ্যাডামস

@ জোয়ে অ্যাডামস: অনুকরণটি 17 * 71 * 113 * 997 * 313597 দিয়ে শুরু হবে ...
ফুজজেক্সএল

3
@FUZxxl: আমি মনে করি আপনি নম্বরটি অনুলিপি করতে ভুল করেছেন। এটি দুটি বৃহত প্রধানের পণ্য
জোয়ে অ্যাডামস

@ জোয়ি আমরা কি শরসের অ্যালগরিদম ব্যবহার করতে পারি?
মতিন উলহাক

23
@ জোয় আমি ঘটনাক্রমে আমার কোয়ান্টাম কম্পিউটারে কিছুটা কফি ছড়িয়ে দিয়েছি, এবং আমার বন্ধু তার "মার্কিন সরকারে হ্যাক" বা গুরুত্বহীন কিছু ব্যবহার করছে, তাই না। :(
মতিন উলহাক

উত্তর:


11

সেজম্যাথ, 31 বাইট

N=input()
print N,"=",factor(N)

পরীক্ষার ক্ষেত্রে: 83891573479027823458394579234582347590825792034579235923475902312344444 ফলাফল:

83891573479027823458394579234582347590825792034579235923475902312344444 = 2^2 * 3^2 * 89395597 * 98966790508447596609239 * 263396636003096040031295425789508274613


আপনার প্রথম পোস্টের সাথে একটি চ্যালেঞ্জ জয়ের জন্য অভিনন্দন, দুর্দান্ত কাজ! এবং সাইটে আপনাকে স্বাগতম!
ডিজেএমসিএমহেম

8

রুবি ১.৯, 74 70 টি অক্ষর

#!ruby -plrmathn
$_+=?=+$_.to_i.prime_division.map{|a|a[0,a[1]]*?^}*?*

সম্পাদনা:

  • (- 74 -> )০) সুস্পষ্টভাবে পরীক্ষা করার পরিবর্তে খালি দৈর্ঘ্য হিসাবে এক্সপোজনটি ব্যবহার করুন exponent > 1

7

পার্ল 5.10, 73 88

perl -pe '$_=`factor $_`;s%( \d+)\K\1+%-1-length($&)/length$1%ge;y, -,*^,;s;\D+;=;'

স্ট্যান্ডার্ড ইনপুট থেকে ইনপুট নম্বর নেয়। যদি সরবরাহ করা হয় তবে একাধিক ইনপুটগুলির জন্য গুণনকারী কারণগুলি গণনা করবে।

একটি পার্থক্য হিসাবে গণনা perl -e\Kরেগেক্স মেটাচার্যাক্টারের জন্য 5.10 প্রয়োজন ।


ব্যবহারের জন্য +1 factor
st0le

আপনি pবিকল্প গণনা করা উচিত নয় ?
জোয়

@ জোয়ে আসলেই আমার উচিত ছিল। এর জন্যে দুঃখিত. স্থাপন করা.
জেবি

এটি পরীক্ষা করা হয়নি, তবে পরিবর্তে split/\D/,~factor $_~;$_="@_";আপনি লিখতে পারেন $_=~factor $_~;s/\D/ /g;? (অবশ্যই ~ব্যাকটিক দিয়ে প্রতিস্থাপন করুন।)
টিমভি

মানে $_=`factor $_`;s/\D/ /g;? দ্বৈত ব্যাকটিক এনক্যাসিং সহায়তা করে।
আআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআআ

5

ওক্যামল, 201 টি অক্ষর

সেরা পাইথন কোডের একটি সরাসরি আবশ্যক অনুবাদ:

let(%)s d=if!d>1then Printf.printf"%s%d"s!d
let f n=let x,d,e,s=ref n,ref 1,ref 0,ref"="in""%x;while!d<65536do
incr d;e:=0;while!x mod!d=0do x:=!x/ !d;incr e
done;if!e>0then(!s%d;"^"%e;s:="*")done;!s%x

উদাহরণ স্বরূপ,

# f 4294967292;;
4294967292=2^2*3^2*7*11*31*151*331- : unit = ()

(মনে রাখবেন যে আমি চূড়ান্ত শেষরেখাকে আউটপুটিং বাদ দিয়েছি)) কেবল মজাদার জন্য, 213 টি অক্ষরে, একটি খাঁটি কার্যকরী সংস্করণ, অপারেটরদের উদার ব্যবহারের মাধ্যমে পুরোপুরি অবরুদ্ধ:

let(%)s d=if d>1then Printf.printf"%s%d"s d
let f x=let s=ref"="in""%x;let rec(@)x d=if d=65536then!s%x else
let rec(^)x e=if x/d*d<x then x,e else x/d^e+1in
let x,e=x^0in if e>0then(!s%d;"^"%e;s:="*");x@d+1in x@2

5

পাইথন, 140 135 133 অক্ষর

M=N=input()
s=''
f=1
while f<4**8:
 f+=1;e=0
 while N%f<1:e+=1;N/=f
 if e:s+='*%d'%f+'^%d'%e*(e>1)
print M,'=',(s+'*%d'%N*(N>1))[1:]

আমি মনে করি আউটপুটটির আরও কিছু জায়গা প্রয়োজন, যেমন ' * %d'... এবং আরও দুটি জিনিস:65536 == 4**8 :; লাইন 7:if e:s+='*%d'%f+'^%d'%e*(e>1)
ওলেহ প্রিপিন

@ ব্ল্যাকস্পিরিট: "সমান পরিমাণ হোয়াইটস্পেসের প্রয়োজন নেই"। অন্য দু'জনের জন্য ধন্যবাদ, আমি তাদের অন্তর্ভুক্ত করব।
কীথ র্যান্ডাল

5

জে, 72

(":*/f),'=',([,'*',])/(":"0~.f),.(('^',":)`(''"0)@.(=&1))"0+/(=/~.)f=.q:161784

টিপিকাল জে বেশিরভাগ কাজ করতে দুটি অক্ষর, এটি উপস্থাপনের জন্য ষাট অক্ষর।

সম্পাদনা: চরিত্রের গণনা স্থির করা হয়েছে।


2
এটি আমার কাছে 62 টি চরিত্রের মতো দেখাচ্ছে না। এমনকি যখন ধরে নেওয়া 161784হয় আপনার ইনপুট, এটি এখনও 72 টি অক্ষর।
ভেন্টোরো

এটি কি সংক্ষিপ্ত হবে না |: __ q: y?
এলেভেক্স

2
@ ভেন্তোরো: সাধারণ জেবি। দু'ঘণ্টা শয়তান জিনিসটি গল্ফ করতে, পনের সেকেন্ডের জন্য চরিত্রের গণনা গোলযোগ।
জেবি

5

জে, 53 52 টি অক্ষর

এই সমাধানটি rplcএর সমাধান থেকে কৌশলটি নেয় এলোমেলো তবে কিছু আসল ধারণা নিয়ে আসে।

":,'=',(":@{.,'^','*',~":@#)/.~@q:}:@rplc'^1*';'*'"_

নন-সারণী স্বরলিপিতে, এই ক্রিয়াটি হয়ে ওঠে

f =: 3 : 0
(": y) , '=' , }: (g/.~ q: y) rplc '^1*' ; '*'
)

যেখানে gহিসাবে সংজ্ঞায়িত করা হয়

g =: 3 : 0
": {. y) , '^' , (": # y) , '*'
)
  • q: yবাহক মৌলিক উত্পাদক এর y। উদাহরণস্বরূপ, q: 60ফলন 2 2 3 5
  • x u/. yকীড দ্বারা প্রয়োগ uকরা হয় , যা উপাদানগুলির ভেক্টরগুলিতে প্রয়োগ করা হয় যার জন্য প্রবেশদ্বার সমান হয়। এই ব্যাখ্যা করার একটি বিট জটিল, কিন্তু বিশেষ ক্ষেত্রে বা , স্বতন্ত্র উপাদানের প্রতিটি ভেক্টর প্রয়োগ করা হয় , যেখানে প্রতিটি উপাদান প্রায়ই যেমন উপস্থিত হয় জন্য পুনরাবৃত্তি করা হয় । উদাহরণস্বরূপ, ফলনy xuyxy u/. yu/.~ yuyy</.~ 1 2 1 2 3 1 2 2 3

    ┌─────┬───────┬───┐
    │1 1 1│2 2 2 2│3 3│
    └─────┴───────┴───┘
    
  • # yহয় ট্যালি এরy , যে আইটেম সংখ্যা y

  • ": y ফরম্যাটের yএকটি স্ট্রিং হিসাবে ।
  • x , y আপনার স্বাক্ষরে x এবং y
  • {. y হয় মাথা y , যে তার প্রথম আইটেম।
  • সুতরাং, (": {. y), '^' , (": # y) , '*'একটি ভেক্টর ফরম্যাট এন একটি সংখ্যা পুনরাবৃত্তির ফর্ম একটি স্ট্রিং মধ্যে ^ এন *। সূক্ষ্ম স্বরলিপিতে এই বাক্যাংশটি হ'ল :@{.,'^','*',~":@#, যা আমরা /.উপরে বর্ণিত ক্রিয়াবিধিতে প্রেরণ করি ।
  • x rplc yঅক্ষর প্রতিস্থাপন লাইব্রেরি ফাংশন হয় yফর্ম আছে a ; bএবং স্ট্রিং এর প্রতিটি উদাহরণের aমধ্যে xদ্বারা প্রতিস্থাপিত হয় bxঅপারেশন শুরুর আগে এটি ব্যবহার করা হয়, যা এখানে ব্যবহৃত হয় ra এই কোড প্রতিস্থাপন ^1*সঙ্গে *যেমন বাধ্যতামূলক আউটপুট ফরম্যাট মেনে চলতে।
  • }: yহয় পর্দার এর y, যে, সব কিন্তু তার শেষ আইটেম। এটি পিছনটি সরাতে ব্যবহৃত হয় *

আপনি ব্যবহার করে অনেক কাজ সংরক্ষণ করতে পারেন না __ q:? এটি অনলাইন চেষ্টা করুন!
অ্যাডম

@ অ্যাডাম সত্যই, ভাল ধারণা!
FUZxxl

4

পিএইচপি, 112

echo$n=$_GET[0],'=';$c=0;for($i=2;;){if($n%$i<1){$c++;$n/=$i;}else{if($c){echo"$i^$c*";}$c=0;if(++$i>$n)break;}}

118

echo $n=$_GET[0],'=';for($i=2;;){if(!($n%$i)){++$a[$i];$n/=$i;}else{if($a[$i])echo "$i^$a[$i]*";$i++;if($i>$n)break;}}

3

পাইথন 119 চর

M=N=input()
i=1
s=""
while N>1:
 i+=1;c=0
 while N%i<1:c+=1;N/=i
 if c:s+=" * %d"%i+['','^%d'%c][c>1]
print M,'=',s[3:]

1
এটিই আমি প্রথমে চেষ্টা করেছি, তবে 4294967291 এর মতো বড় প্রাইমগুলির পক্ষে এটি খুব ধীর is
কীথ র্যান্ডাল

@ কিথ প্রশ্নটি 10 ​​মিনিট পর্যন্ত অনুমতি দেয়। এটি কি সবচেয়ে খারাপ ক্ষেত্রে 10 মিনিটেরও বেশি সময় নেবে?
fR0DDY

2
এটির জন্য আমার মেশিনে 32 মিনিট সময় লেগেছে।
কীথ র্যান্ডাল

3

জাভাস্ক্রিপ্ট, 124 122 119

for(s='',i=2,o=p=prompt();i<o;i++){for(n=0;!(p%i);n++)p/=i;n?s+=i+(n-1?'^'+n:'')+'*':0}alert(s.substring(0,s.length-1))

3

পার্ল, 78

use ntheory":all";say join" * ",map{(join"^",@$_)=~s/\^1$//r}factor_exp(shift)

এটি পার্ল 5.14 এর s /// r বৈশিষ্ট্যটি ^ 1 গুলি এলিডে ব্যবহার করে। একটি লুপে চালানো 81 টি অক্ষর:

perl -Mntheory=:all -nE 'chomp;say join" * ",map{(join"^",@$_)=~s/\^1$//r}factor_exp($_);'

আপনি চাইলে ফাঁকা জায়গা ছেড়ে দিতে পারেন। এটি দুটি অক্ষর সংরক্ষণ করবে। চমৎকার সমাধান!
FUZxxl

2

পিএইচপি, 236 টি অক্ষর

$f[$n=$c=$argv[1]]++;echo"$n=";while($c){$c=0;foreach($f as$k=>$n)for($r=~~($k/2);$r>1;$r--){if($k%$r==0){unset($f[$k]);$f[$r]++;$f[$k/$r]++;$c=1;break;}}}foreach($f as$k=>$n)if(--$n)$f[$k]="$k^".++$n;else$f[$k]=$k;echo implode("*",$f);

131784 এর আউটপুট: 2 ^ 3 * 3 * 17 ^ 2 * 19

পরীক্ষার সময় কয়েক সেকেন্ডের মধ্যে সমস্ত সংখ্যা সম্পূর্ণ করে।

4294967296=2^32
Time: 0.000168

ইনপুটটি কখনই নির্দিষ্ট করা হয়নি, তাই আমি কমান্ড লাইন যুক্তি ব্যবহার করে এটি কল করতে পছন্দ করেছি।

php factorize.php 4294967296

2

স্কেল 374:

def f(i:Int,c:Int=2):List[Int]=if(i==c)List(i)else 
if(i%c==0)c::f(i/c,c)else f(i,c+1)
val r=f(readInt)
class A(val v:Int,val c:Int,val l:List[(Int,Int)])
def g(a:A,i:Int)=if(a.v==i)new A(a.v,a.c+1,a.l)else new A(i,1,(a.v,a.c)::a.l)
val a=(new A(r.head,1,Nil:List[(Int,Int)])/:(r.tail:+0))((a,i)=>g(a,i))
a.l.map(p=>if(p._2==1)p._1 else p._1+"^"+p._2).mkString("", "*", "")

ungolfed:

def factorize (i: Int, c: Int = 2) : List [Int] = {
  if (i == c) List (i) else 
    if (i % c == 0) c :: f (i/c, c) else 
      f (i, c+1)
}
val r = factorize (readInt)
class A (val value: Int, val count: Int, val list: List [(Int, Int)])
def g (a: A, i: Int) = 
  if (a.value == i) 
    new A (a.value, a.count + 1, a.list) else 
    new A (i, 1, (a.value, a.count) :: a.list)
val a = (new A (r.head, 1, Nil: List[(Int,Int)]) /: (r.tail :+ 0)) ((a, i) => g (a, i))
a.l.map (p => if (p._2 == 1) p._1 else
  p._1 + "^" + p._2).mkString ("", "*", "")

2

জে, 74 অক্ষর

f=.3 :0
(":y),'=',' '-.~('^1 ';'')rplc~}:,,&' *'"1(,'^'&,)&":/"{|:__ q:y
)

   f 131784
131784=2^3*3*17^2*19

ভেরিয়েবল ইনপুট সহ 64 টি অক্ষর x:

   x=.131784

   (":x),'=',' '-.~('^1 ';'')rplc~}:,,&' *'"1(,'^'&,)&":/"{|:__ q:x
131784=2^3*3*17^2*19

আপনি যদি এটিকে একটি স্বচ্ছ সংজ্ঞাতে রূপান্তরিত করতে পরিচালিত হন তবে আপনি সমস্ত উদ্ধৃতিগুলি এড়িয়ে চলতে পারবেন। আপনি একটি 3 : 0সংজ্ঞা ব্যবহার করতে পারে ।
FUZxxl

@FUZxxl আমি প্রত্যাশা করেছি যে আমি কেবল 3 : 0সংস্করণে অনাকাঙ্ক্ষিত স্ট্রিংটি রাখতে পারি তবে এটি কোনওভাবে কার্যকর হয়নি। আমি যদিও পরে চেষ্টা করতে পারি। এটি হ'ল 3: 0 আমি চেষ্টা করেছি: পেস্টবিন . com / rmTVAk4j
এলোমেলো

এটি কাজ করা উচিত. কেন দেখছি না। আপনি নিজের যুক্তিকে yযেমন বলেছিলেন তেমন নাম দিয়েছেন?
FUZxxl

@FUZxxl এটি 3: 0 আমি চেষ্টা করেছি: পেস্টবিন . com/rmTVAk4j ।
এলোমেলো

আপনি যে 3: 0 টি চেষ্টা করেছেন সেটি আপনার সরবরাহ করা ওয়ান-লাইনারের সাথে ঠিক মেলে না doesn't এটি এক জায়গায় ''পরিবর্তে ব্যবহার করে a:। এটাই কি পার্থক্য?
FUZxxl

2

জাভা 10, 109 108 বাইট (ল্যাম্বডা ফাংশন) (ওপি এর অনুরোধে অ-প্রতিদ্বন্দ্বী)

n->{var r=n+"=";for(int i=1,f;i++<n;r+=f<1?"":(f<2?i:i+"^"+f)+(n>1?"*":""))for(f=0;n%i<1;n/=i)f++;return r;}

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

জাভা 6+, 181 বাইট (পুরো প্রোগ্রাম)

class M{public static void main(String[]a){long n=new Long(a[0]),i=1,f;String r=n+"=";for(;i++<n;r+=f<1?"":(f<2?i:i+"^"+f)+(n>1?"*":""))for(f=0;n%i<1;n/=i)f++;System.out.print(r);}}

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

-1 বাইট @ সিলিংক্যাট ধন্যবাদ ।

ব্যাখ্যা:

n->{                // Method with integer parameter and String return-type
  var r=n+"=";      //  Result-String, starting at the input with an appended "="
  for(int i=1,f;i++<n;
                    //  Loop in the range [2, n]
      r+=           //    After every iteration: append the following to the result-String:
        f<1?        //     If the factor `f` is 0:
         ""         //      Append nothing
        :           //     Else:
         (f<2?      //      If the factor `f` is 1:
           i        //       Append the current prime `i`
          :         //      Else:
           i+"^"+f) //       Append the current prime `i` with it's factor `f`
         +(n>1?     //      And if we're not done yet:
            "*"     //       Also append a "*"
           :        //      Else:
            ""))    //       Append nothing more
    for(f=0;        //   Reset the factor `f` to 0
        n%i<1;      //   Loop as long as `n` is divisible by `i`
      n/=i)         //    Divide `n` by `i`
      f++;          //    Increase the factor `f` by 1
  return r;}        //  Return the result-String


এই কাজটি প্রকাশের পরে জাভা 10 হিসাবে অযোগ্য হিসাবে তৈরি করা হয়েছিল।
FUZxxl

@FUZxxl আমি জাভা 10 ল্যাম্বডাকে অ-প্রতিযোগিতামূলক হিসাবে চিহ্নিত করেছি এবং একটি জাভা 6 প্রোগ্রাম যুক্ত করেছি, যা 2006 সালের ডিসেম্বর মাসে প্রকাশিত হয়েছিল ।
কেভিন ক্রুইজসেন

ঠিক আছে ভদ্র. সেটা আমার জন্য কাজ করে!
FUZxxl

2

জাপট , 28 27 26 বাইট

-1 বাইট শ্যাগি ধন্যবাদ

+'=+Uk ü ®ÊÉ?ZÌ+'^+Zl:ZÃq*

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


এই ভাষা প্রকাশের পরে আপনার ভাষা তৈরি হওয়ার কারণে অযোগ্য ঘোষণা করা হয়েছে।
FUZxxl


চ্যালেঞ্জ পোস্ট হওয়ার পরে এটির অনুমতি দেওয়া হয়নি। আমি চ্যালেঞ্জ পোস্ট হওয়ার পরে কোনও চ্যালেঞ্জের নিয়মগুলি সংশোধন করা অন্যায় বলে বিবেচনা করি, সুতরাং এই চ্যালেঞ্জের পরে প্রকাশিত ভাষাগুলি অবৈধ থাকবে।
ফুজজেক্সএল

1
@FUZxxl আপনি আমার উত্তর গ্রহণ করতে হবে না, তবে নির্বিশেষে আমাকে এর উত্তর দেওয়ার অনুমতি দেওয়া হচ্ছে।
অলিভার


1

পাওয়ারশেল, 113 97 বাইট

জোয়ের উত্তরে অনুপ্রাণিত । এটি একটি ধীর কিন্তু সংক্ষিপ্ত।

param($x)(2..$x|%{for(;!($x%$_)){$_
$x/=$_}}|group|%{$_.Name+"^"+$_.Count-replace'\^1$'})-join'*'

ব্যাখ্যা করা স্ক্রিপ্ট:

$f = {

param($x)               # let $x stores a input number > 0
(2..$x|%{               # loop from 2 to initial input number
    for(;!($x%$_)){     # loop while remainder is 0
        $_              # push a current value to a pipe
        $x/=$_          # let $x is $x/$_ (new $x uses in for condition only)
    }
}|group|%{              # group all values
    $_.Name+"^"+$_.Count-replace'\^1$'  # format and remove last ^1
})-join'*'              # make string with *

}

&$f 2
&$f 126
&$f 129
&$f 86240
#&$f 7775460

আউটপুট:

2
2*3^2*7
3*43
2^5*5*7^2*11

1

জেলি , 16 বাইট (ওপির অনুরোধে প্রতিদ্বন্দ্বী)

³”=³ÆFḟ€1j€”^j”*

আমার প্রথম জেলি উত্তরগুলির একটি, যাতে অবশ্যই গল্ফ করা যায় (বিশেষত) ³”=³ ) ..

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

ব্যাখ্যা:

³                 # Push the first argument
 ”=               # Push string "="
   ³ÆF            # Get the prime factor-exponent pairs of the first argument
      ḟ€1         # Remove all 1s from each pair
         j€”^     # Join each pair by "^"
             j”*  # Join the pair of strings by "*"
                  # (implicitly join the entire 'stack' together)
                  # (which is output implicitly as result)

এই ভাষা প্রকাশের পরে আপনার ভাষা তৈরি হওয়ার কারণে অযোগ্য ঘোষণা করা হয়েছে।
FUZxxl

@FUZxxl যেহেতু ২০১ non সালের মাঝামাঝি অ-প্রতিযোগিতা মেটাতে আর নেই , যদি না চ্যালেঞ্জটি স্পষ্টভাবে বলে দেয় যে ভাষা পোস্টের সময়কালের চেয়ে পুরানো হওয়া উচিত। কিন্তু আপনি যদি হিসাবে যারা চ্যালেঞ্জ তা চয়ন পোস্ট নতুন ভাষায় না অনুমতি দেয় আপনার চ্যালেঞ্জ পোস্ট তারিখের, আমি আমার উত্তরগুলির সম্পাদনাও স্পষ্ট যোগ করার জন্য হবে (non-competing)। :)
কেভিন ক্রুইজসেন

আমি বিশ্বাস করি যখন এই চ্যালেঞ্জ পোস্ট করা হয়েছিল তখন সাইট conকমত্য যে জায়গায় ছিল সেগুলির উত্তরগুলির জন্য নিয়মগুলি সংজ্ঞায়িত করা উচিত। অন্য সমস্ত কিছু (যেমন চ্যালেঞ্জ পোস্ট হওয়ার পরে পরিবর্তিত নিয়মগুলি) অন্যায় হবে। আপনার উত্তরগুলি প্রতিযোগিতামূলক হিসাবে চিহ্নিত করুন।
FUZxxl

@FUZxxl আমি আমার উত্তরগুলি প্রতিযোগিতামূলক হিসাবে চিহ্নিত করেছি, অনুরোধ হিসাবে।
কেভিন ক্রুইজসেন

আপনার সাহায্যের জন্য ধন্যবাদ।
FUZxxl

1

05 এ বি 1 ই , 22 20 বাইট ( ওপির অনুরোধের সাথে প্রতিযোগিতা করা)

ÐfsÓ0Køε1K'^ý}'*ý'=ý

-2 ধন্যবাদ বাইট @Emigna

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

ব্যাখ্যা:

Ð                # Triplicate the (implicit) input-integer
 f               # Pop and push all prime factors (without counting duplicates)
  s              # Swap to take the input again
   Ó             # Get all prime exponents
    0K           # Remove all 0s from the exponents list
      ø          # Zip it with the prime factors, creating pairs
       ε         # Map each pair to:
        1K       #  Remove all 1s from the pair
        '^ý     '#  And then join by "^"
       }'*ý     '# After the map: join the string/integers by "*"
           '=ý  '# And join the stack by "=" (with the input we triplicated at the start)
                 # (after which the result is output implicitly)

1Kলুপে `≠ আই এর পরিবর্তে কাজ করা উচিত ।
এমিগনা

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

এই ভাষা প্রকাশের পরে আপনার ভাষা তৈরি হওয়ার কারণে অযোগ্য ঘোষণা করা হয়েছে।
FUZxxl

1

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

{(⍕⍵),'=',3↓∊{m←' * ',⍕↑⍵⋄1=w←2⊃⍵:m⋄m,'^',⍕w}¨v,¨+/¨{k=⍵}¨v←∪k←π⍵}

পরীক্ষা এবং মন্তব্য:

  f←{(⍕⍵),'=',3↓∊{m←' * ',⍕↑⍵⋄1=w←2⊃⍵:m⋄m,'^',⍕w}¨v,¨+/¨{k=⍵}¨v←∪k←π⍵}
  f 131784
131784=2^3 * 3 * 17^2 * 19
  f 2
2=2
  f (2*32)
4294967296=2^32

{(⍕⍵),'=',3↓∊{m←' * ',⍕↑⍵⋄1=w←2⊃⍵:m⋄m,'^',⍕w}¨v,¨+/¨{k=⍵}¨v←∪k←π⍵}
k←π⍵      find the factors with repetition of ⍵ and assign that array to k example for 12 k is 2 2 3
v←∪       gets from k unique elements and put them in array v
+/¨{k=⍵}¨ for each element of v count how many time it appear in k (it is array exponents)
v,¨       make array of couples from element of v (factors unique) and the array above (exponents unique)
∊{m←' * ',⍕↑⍵⋄1=w←2⊃⍵:m⋄m,'^',⍕w}¨ pretty print the array of couples factor exponent as array chars
3↓                                 but not the first 3 chars
(⍕⍵),'='  but print first the argument and '=' in char format

কারও যদি এই আদিমগুলির সাথে অনেক সময় থাকে, তাদের এগুলি খুব ভালভাবে জেনে রাখুন, আমার পক্ষে এটি কোডের মন্তব্যগুলির আরও পরিষ্কার হওয়া সম্ভব ... সুতরাং মন্তব্যগুলি মন্তব্যগুলির চেয়ে বেশি স্পষ্ট কোড, অপ্রয়োজনীয় মন্তব্য ...


0

জাভাস্ক্রিপ্ট, 107

n=prompt()
s=n+'='
c=0
for(i=2;;){if(n%i<1){c++
n/=i}else{if(c)s+=i+'^'+c+'*'
c=0
if(++i>n)break}}
alert(s)

120

n=prompt()
o={2:0}
for(i=2,c=n;i<=c;)!(c%i)?++o[i]?c/=i:0:o[++i]=0
s=n+'='
for(i in o)s+=o[i]?i+'^'+o[i]+'*':''
alert(s)

1
*আউটপুটটির পিছনে পিছনে রয়েছে এবং
প্রকাশকটি

ডাউনভোট করার দরকার নেই। এটি কোথাও নেই যা বলেছিল যে এটি 1 হলে এটি সূচকটি প্রিন্ট করতে পারে না Also এছাড়াও, অনুবর্তনটি বহুগুণকে *ধরে নেয় 1। যদি এটি বড় সমস্যা হয় তবে আমি এটি ঠিক করব।
zzzzBov

1
Description নিম্নলিখিত বিন্যাসে the টাস্ক বিবরণে প্রায় অনেকটাই বোঝায় যে এর কোনও সূচক 1মুদ্রণ করা উচিত নয়। এবং না, একটি পিছনে পিছনে যাওয়াও এর *বিপরীতে। যদি কেউ নির্দ্বিধায় আউটপুট ফর্ম্যাটটি বেছে নিতে পারে তবে শেলিং আউট factor(1)করা সবচেয়ে সহজ। উত্তরগুলি যুক্তিসঙ্গতভাবে তুলনা করতে পারে যদি তারা সকলেই একই সমস্যা সমাধান করে।
জোয়

3
এই কাজের স্রষ্টা হিসাবে আমি বলছি যে 1 এবং কেবলমাত্র মৌলিক সংখ্যাগুলি যদি কারণ হতে পারে তবে প্রকাশকারীদের বাদ দিতে হবে।
FUZxxl


0

পিএইচপি, 93 বাইট

<?=$n=$argn;for($i=2;$n>1;$k&&$p=print($p?"*":"=")."$i^$k",$i++)for($k=0;$n%$i<1;$n/=$i)$k++;

আমি পিএইচপি 5.5 (বা তারপরে) দিয়ে 89 বাইট করতে পারি, তবে এটি চ্যালেঞ্জটি 2 বছরেরও বেশি সময় পোস্ট করবে:

<?=$n=$argn;for($i=2;$n>1;$k&&$p=print"=*"[$p]."$i^$k",$i++)for($k=0;$n%$i<1;$n/=$i)$k++;

পাইপ হিসাবে চালনা করুন-nF বা তাদের অনলাইনে চেষ্টা করুন

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