प्रमुख कारकों का पता लगाएं


23

इस कार्य में, आपको एक प्रोग्राम लिखना होगा, जो किसी संख्या के प्रमुख कारकों की गणना करता है। इनपुट एक प्राकृतिक संख्या 1 <n <2 ^ 32 है। आउटपुट निम्न प्रारूप में संख्या के प्रमुख कारकों की एक सूची है। यदि वे 1. आउटपुट प्राइम नंबर हैं, तो एक्सपोर्टर को छोड़ दिया जाना चाहिए। (इनपुट १84१ )४ मानते हुए):

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

व्हॉट्सएप की समान मात्रा का उपयोग करने की आवश्यकता नहीं है; जहां भी उपयुक्त हो व्हॉट्सएप डाला जा सकता है। किसी भी इनपुट के लिए आपका कार्यक्रम कम से कम 10 मिनट में पूरा होना चाहिए। कम से कम पात्रों वाला कार्यक्रम जीतता है।


9
बोनस अंक यदि आपका कार्यक्रम फैक्टर 68575999143494039776547449671727581799041142646129473261271699761213969809550548427848084505043857564646464264402959527540275406756606756756756756176186266186266166176176266166166186 पर प्रदर्शित कर सकते हैं।
जॉय एडम्स

@ जोए एडम्स: फैक्टराइजेशन 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


अपने पहले ही पोस्ट के साथ एक चुनौती जीतने पर बधाई, अच्छा काम! और साइट पर आपका स्वागत है!
DJMcMayhem

8

रूबी 1.9, 74 70 अक्षर

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

संपादन:

  • ()४ -> )०) स्पष्ट रूप से जाँचने के बजाए घातांक के रूप में घातांक का उपयोग करें 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

OCaml, 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 वर्णों पर, विशुद्ध रूप से कार्यात्मक संस्करण, ऑपरेटरों के उदार उपयोग के माध्यम से अच्छी तरह से obfuscated:

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:; पंक्ति Line:if e:s+='*%d'%f+'^%d'%e*(e>1)
ओलेह प्रिनपिन

@BlaXpirit: "व्हॉट्सएप की समान मात्रा की आवश्यकता नहीं है"। अन्य दो के लिए धन्यवाद, मैं उन्हें शामिल करूँगा।
कीथ रान्डेल

5

जे, 72२

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

विशिष्ट जे। दो चरित्रों को अधिकांश काम करने के लिए, साठ अक्षर इसे प्रस्तुत करने के लिए।

संपादित करें: वर्ण गणना निश्चित।


2
यह मुझे 62 वर्णों की तरह नहीं दिखता है। यह मानते हुए भी कि 161784आपका इनपुट है, यह अभी भी 72 अक्षर है।
वेंचरो

क्या यह कम नहीं होगा |: __ q: y?
बारहवीं

2
@Ventero: typical JB. Two hours to golf the damned thing, fifteen seconds to mess up the character count.
J B

5

जे, ५३ ५२ अक्षर

यह समाधान यादृच्छिक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 अर्थात्x , उन uतत्वों के वैक्टर पर लागू होता है yजिनके लिए प्रविष्टियां xसमान हैं। यह समझाने के लिए थोड़ा जटिल है, लेकिन विशेष मामले में y u/. yया u/.~ y, uअलग-अलग तत्वों के प्रत्येक वेक्टर पर लागू किया जाता है y, जहां प्रत्येक तत्व को जितनी बार यह दिखाई देता है उतनी बार दोहराया जाता है y। उदाहरण के लिए, </.~ 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 appends x और y
  • {. yहै सिर y , यह है कि, अपने पहले आइटम।
  • Thus, (": {. y), '^' , (": # y) , '*' formats a vector of n repetitions of a number k into a string of the form k ^ n *. This phrase in tacit notation is :@{.,'^','*',~":@#, which we pass to the adverb /. described further above.
  • x rplc y is the library function replace characters. y has the form a ; b and every instance of string a in x is replaced by b. x is ravelled (that is, reshaped such that it has rank 1) before operation takes place, which is used here. This code replaces ^1* with * as to comply with the mandated output format.
  • }: y is the curtail of y, that is, all but its last item. This is used to remove the trailing *.

Couldn't you save a lot of work by using __ q:? Try it online!
Adám

@Adám Indeed, good idea!
FUZxxl

4

PHP, 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

Python 119 Chars

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
That's what I tried first, but it is too slow for big primes, like 4294967291.
Keith Randall

@Keith The question allows upto 10 minutes. Will this take more than 10 minutes for the worst case?
fR0DDY

2
It took 32 minutes on my machine for that number.
Keith Randall

3

JavaScript, 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

Perl, 78

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

It uses the s///r feature of Perl 5.14 to elide the ^1s. 81 characters to run in a loop:

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

You can leave out the spaces if you like. This would save two characters. Nice solution!
FUZxxl

2

PHP, 236 characters

$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);

Output for 131784: 2^3*3*17^2*19

Completes all numbers within a few seconds while testing.

4294967296=2^32
Time: 0.000168

Input was never specified, so I chose to call it using command line arguments.

php factorize.php 4294967296

2

Scala 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

J, 74 chars

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

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

64 chars with input in variable x:

   x=.131784

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

If you manage to turn this into a tacit definition, you can avoid escaping all the quotes. You could also use a 3 : 0 defintion.
FUZxxl

@FUZxxl I expected I can just put in the unescaped string in the 3 : 0 version but it didn't work somewhy. I might try tacit later though. This is the 3:0 I tried: pastebin.com/rmTVAk4j.
randomra

It should work. I don't see why. Did you name your argument y as you are supposed to?
FUZxxl

@FUZxxl This is the 3:0 I tried: pastebin.com/rmTVAk4j.
randomra

The 3:0 you tried doesn't exactly match the one-liner you provide. It uses '' instead of a: in one place. Maybe that's the difference?
FUZxxl

2

Java 10, 109 108 bytes (lambda function) (non-competing on request of OP)

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;}

Try it online.

Java 6+, 181 bytes (full program)

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);}}

Try it online.

-1 byte thanks to @ceilingcat.

Explanation:

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

@ceilingcat Thanks!
Kevin Cruijssen

Disqualified as Java 10 was created after this task was published.
FUZxxl

@FUZxxl I've marked the Java 10 lambda as non-competing, and added a Java 6 program, which was released in December 2006.
Kevin Cruijssen

Okay, cool. That works for me!
FUZxxl

2

Japt, 28 27 26 bytes

-1 byte thanks to Shaggy

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

Try it


Disqualified as your language was created after this task was published.
FUZxxl


चुनौती पोस्ट किए जाने पर इसे वापस करने की अनुमति नहीं थी। मैं चुनौती देने के बाद एक चुनौती के नियमों में संशोधन करना अनुचित मानता हूं, इसलिए इस चुनौती के बाद प्रकाशित होने वाली भाषाएं अवैध हैं।
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 2017 के मध्य से गैर-प्रतिस्पर्धा अब मेटा में नहीं है , जब तक कि चुनौती स्पष्ट रूप से नहीं बताती है कि भाषाएं पोस्टिंग के समय से पुरानी होनी चाहिए। लेकिन अगर आप चुनौती पोस्ट करने वाले व्यक्ति को अपनी चुनौती के बाद की तारीखों से नई भाषाओं की अनुमति नहीं देने का विकल्प चुनते हैं, तो मैं स्पष्ट जोड़ने के लिए अपने उत्तरों को संपादित करूंगा (non-competing)। :)
केविन क्रूज़सेन

मेरा मानना ​​है कि इस चुनौती के लागू होने के समय साइट की सहमति जवाब के लिए नियमों को परिभाषित करना चाहिए। बाकी सब कुछ (यानी चुनौती पोस्ट होने के बाद बदलने वाले नियम) अनुचित होगा। कृपया अपने उत्तरों को गैर प्रतिस्पर्धी के रूप में चिह्नित करें।
फ्यूजएक्सएक्सएल

@FUZxxl मैंने अपने उत्तरों को गैर-प्रतिस्पर्धी के रूप में चिह्नित किया है, जैसा कि अनुरोध किया गया है।
केविन क्रूज़सेन

आपके सहयोग के लिए धन्यवाद।
फ्यूजएक्सएक्सएल

1

05AB1E , 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लूप में `y iy के बजाय काम करना चाहिए ।
प्रातः

@Emigna आह लोल .. मैं वास्तव में अपने जेली जवाब में मैं सिर्फ पोस्ट किया है । मुझे यकीन नहीं है कि मैंने इसके बारे में यहाँ पहले क्यों नहीं सोचा। :)
केविन क्रूज़सेन

इस कार्य के प्रकाशित होने के बाद आपकी भाषा के रूप में अयोग्य घोषित कर दिया गया था।
फ़ूजएक्सल

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

जावास्क्रिप्ट, १० JavaScript

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. है
वेंटरो

नीचा दिखाने की जरूरत नहीं। इसमें कहीं नहीं कहा गया है कि अगर यह 1. है, तो यह घातांक प्रिंट नहीं कर सकता है, इसके अलावा, अनुगामी *द्वारा गुणा किया जाता है 1। अगर यह इतना बड़ा मुद्दा है, तो मैं इसे ठीक कर दूंगा।
zzzzBov

1
निम्नलिखित प्रारूप में «कार्य विवरण में« बहुत अधिक तात्पर्य है कि एक घातांक 1मुद्रित नहीं किया जाना चाहिए। और नहीं, एक अनुगामी *भी उस के खिलाफ है। अगर कोई ऐसा आउटपुट फॉर्मेट चुन सकता है जो स्वतंत्र रूप से हो, तो factor(1)सबसे आसान तरीका होगा। उत्तर केवल यथोचित तुलना कर सकते हैं यदि वे सभी एक ही समस्या को हल करते हैं।
जॉय

3
इस कार्य के निर्माता के रूप में, मैं कहता हूं, कि यदि 1 और केवल अभाज्य-संख्या कारक हो सकते हैं, तो घातांक को छोड़ना होगा।
फ़ूजएक्सएक्सएल


0

PHP, 93 bytes

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

I could do 89 bytes with PHP 5.5 (or later), but that postdates the challenge by more than 2 years:

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

Run as pipe with -nF or try them online.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.