Re: FactorInteger - MathKernel crashes

*To*: mathgroup at smc.vnet.net*Subject*: [mg73462] Re: FactorInteger - MathKernel crashes*From*: "dimitris" <dimmechan at yahoo.com>*Date*: Sat, 17 Feb 2007 05:04:47 -0500 (EST)*References*: <er3hhj$fee$1@smc.vnet.net>

The same holds true for version 5.2. Let now a3 = 13^24 + 5^37 * # &; Then the following commands exhibits Mathematica normal behavior In[44]:= TableForm[({#1, Times@@ MapThread[HoldForm[#1^#2] & , Transpose[FactorInteger[a3[#1]]]]} & ) /@ Range[40], TableHeadings -> {None, {"superscript", "factoring"}}, TableAlignments -> Center] In[45]:= TableForm[({#1, Times@@ MapThread[HoldForm[#1^#2] & , Transpose[FactorInteger[a3[#1]]]]} & ) /@ Range[42, 100], TableHeadings -> {None, {"superscript", "factoring"}}, TableAlignments -> Center] In[46]:= TableForm[({#1, Times@@ MapThread[HoldForm[#1^#2] & , Transpose[FactorInteger[a3[#1]]]]} & ) /@ Range[100, 1000], TableHeadings -> {None, {"superscript", "factoring"}}, TableAlignments -> Center] I=2Ee. Mathematica (at least for superscript up to 1000!) crashes ONLY for superscript equal to 41! In[50]:= ({#1, a3[#1], Times@@ MapThread[HoldForm[#1^#2] & , Transpose[FactorInteger[a3[#1]]]]} & )[41] (*Kernel crashes*) Even the following setting does not change the situation In[1]:= a3[41] // FactorInteger[#, FactorComplete -> False] & (*Kernel again crashes*) Searching more I consult to the following link of WRI http://support.wolfram.com/mathematica/kernel/Symbols/System/FactorInteger.= html In this link in case you don't know you can find additional documentation for many Built-In symbols not encountered anywhere else! In the Notes for FactorInteger we read among many interesting things (BTW may be the following link is also interesting for you http://support.wolfram.com/mathematica/mathematics/numerics/factorintegerme= thods.html ) "=2E..In Mathematica Version 3.0 there is an error in FactorInteger that can cause the kernel to crash if the multiplicity of one of the factors is greater than 2^16. This problem will be corrected for the next version of Mathematica. The solution to this problem is to temporarily create an expression (such as the result of Table[p, {2^16}] that includes at least 2^16 copies of the repeated factor..." So I guess that the problem for a3[41] (i.e. 13^24 + 5^37 * 41) is that one of the factors is too big (bigger than what? Somebody with deeper knowledge than me may tell). With a little-not so clever I must admit!-programming one can factor (at last!) a3[41] First let figure out the factors of a3[41] In[45]:= Cases[({#1, 3525943392189575133132923486/#1} & ) /@ Prime[Range[100000]], {x_, _Integer} /; x > 2] PrimeQ /@ % Cases[({#1, %%[[1,2]]/#1} & ) /@ Prime[Range[100000]], {x_, _Integer}] PrimeQ /@ % Out[45]= {{116371, 30299158657995335033066}} Out[46]= {{True, False}} Out[47]= {{2, 15149579328997667516533}} Out[48]= {{True, True}} So the factors are 2, 116371, 15149579328997667516533. Indeed In[58]:= 2*116371*15149579328997667516533 == a3[41] Out[58]= True I guess that the problem of crashing exists due to the factor 15149579328997667516533 In[61]:= Length[IntegerDigits[15149579328997667516533]] Out[61]= 23 Considering also the case of a3[39] In[62]:= ({#1, a3[#1], Times @@ MapThread[HoldForm[#1^#2] & , Transpose[FactorInteger[a3[#1]]]]} & )[39] Out[62]= {39, 3380424239905906615066517236, HoldForm[2^2]*HoldForm[7^2]*HoldForm[13^1]*HoldForm[602773^1]*HoldForm[2200= 989612048051709^1]} In[64]:= Length[IntegerDigits[2200989612048051709]] Out[64]= 19 I guess (again!) that the problem may be encountered if one factor has more than 20 integer digits! I am sure next (or future in general...) edition of Mathematica will not face this problem. May be some of the Gurus around the this beautiful forum will provide you with deeper insight/algorithm/programming tactics! And now here comes the question: Looking again in above Notes for FactorInteger there is mentioned one method in order to solve the problem of crashing (at least for version 3.0). Does anybody understand this method? I was not able to figure out it meaning! Best Regards Dimitris P=2ES. Now I learn something! =CF/=C7 Costa Bravo =DD=E3=F1=E1=F8=E5: > Hello, > > a1 = 2^4 + 7^24 * 719^2; > a2 = 2^20 * 29^2 + 13^23; > a3 = 13^24 + 5^37 * 41 ; > > MathKernel crashes, since I use > > FactorInteger[a1] or > FactorInteger[a2] or > FactorInteger[a3] > > Why ?? > > If argument of FactorInteger is k*a1 or k*a2 or k*a3 (k = 2,3,4,......) > MathKernel also crashes > > $Version > 5.0 for Microsoft Windows > > Regards, > Costa