早教吧作业答案频道 -->其他-->
:亲和数(AmicableNumber)某一天,tenshi看了一本趣味数学书,上面提到了亲和数tenshi看了数学书,提到亲和数:定义数对(x,y)为亲和数对且x、y各自的所有非自身正因子之和等于另一个数.例如(220
题目详情
:亲和数 ( Amicable Number ) 某一天,tenshi看了一本趣味数学书,上面提到了亲和数
tenshi看了数学书,提到亲和数:定义数对 (x,y) 为亲和数对且x、y各自的所有非自身正因子之和等于另一个数.例如 (220,284) 是亲和数对,220非自身正因子之和为 284,284非自身正因子之和220数对 (x,y ) 跟 (y,x) 被认为是同一数对,所以我们只考虑 x
tenshi看了数学书,提到亲和数:定义数对 (x,y) 为亲和数对且x、y各自的所有非自身正因子之和等于另一个数.例如 (220,284) 是亲和数对,220非自身正因子之和为 284,284非自身正因子之和220数对 (x,y ) 跟 (y,x) 被认为是同一数对,所以我们只考虑 x
▼优质解答
答案和解析
构造亲和数的公式:如果三个数:p=3*2^(n-1)-1,q=6*2^n-1,r=9*2^(2n-1)-1都是素数,且p,q>2,则2^npq和2^nr就是一对亲和数.例如,取n=2,得p=5,q=11,r=71,则2^2*5*11=220和2^2*71=284是一对亲和数.
计算亲和数的JAVA程序
importjava.util.ArrayList; import java.lang.Math; import java.lang.Double;
public classlove_num {
public static voidmain(String[] args)
{
int intMain = 2;
int intBig = 0;
try
{
intBig =Integer.parseInt(args[0].toString());
}
catch (Exception e)
{
System.out.println("error:"+ e);
System.out.println("typecommand like \"java love_num 50\"");
return;
}
while (true)
{
ArrayListlistYakuSu1 = findYakuSu(intMain);
int intSum1 =addYakuSu(listYakuSu1);
//String strDebug ="";
//String strDebug2= "";
if ( intSum1 ==intMain )
{
System.out.println("selfnum:" + intSum1);
//for (int i = 0; i< listYakuSu1.size(); i ++)
//{
// strDebug +=listYakuSu1.get(i);
// strDebug +=",";
//}
//System.out.println("YakuSu:"+ strDebug);
}
else
{
ArrayListlistYakuSu2 = findYakuSu(intSum1);
int intSum2 =addYakuSu(listYakuSu2);
if ( intSum2 ==intMain )
{
System.out.println("lovenum:" + intMain + "--" + intSum1);
//for (int i = 0; i< listYakuSu1.size(); i ++)
//{
// strDebug +=listYakuSu1.get(i);
// strDebug +=",";
//}
//System.out.println("YakuSu:"+ strDebug);
//for (int i = 0; i< listYakuSu2.size(); i ++)
//{
// strDebug2 +=listYakuSu2.get(i);
// strDebug2 +=",";
//}
//System.out.println("YakuSu:"+ strDebug2);
}
}
intMain ++;
if (intMain >intBig)
{
return;
}
}
}
public static intaddYakuSu (ArrayList listYakuSu)
{
//System.out.println("addYakuSustart ");
int sum = 0;
int temp = 0;
for (int i = 0; i< listYakuSu.size() ; i ++ )
{
temp =Integer.parseInt(listYakuSu.get(i).toString());
sum += temp;
}
//System.out.println("addYakuSuend " + sum);
//System.out.println("");
return (sum);
}
public staticArrayList findYakuSu (int intNum)
{
//String strDebug ="";
//System.out.println("findYakuSustart " + intNum);
ArrayListlistYakuSu = new ArrayList();
double dbNum =(double)intNum;
double dbRoot =Math.sqrt(dbNum);
Double d = newDouble(dbRoot);
int intRoot =d.intValue() ;
//System.out.println("root:"+ intRoot);
// if (intHalf * 2== intNum)
// {
// }
// else
// {
// intHalf ++;
// }
listYakuSu.add("1");
for (int i = 2; i
计算亲和数的JAVA程序
importjava.util.ArrayList; import java.lang.Math; import java.lang.Double;
public classlove_num {
public static voidmain(String[] args)
{
int intMain = 2;
int intBig = 0;
try
{
intBig =Integer.parseInt(args[0].toString());
}
catch (Exception e)
{
System.out.println("error:"+ e);
System.out.println("typecommand like \"java love_num 50\"");
return;
}
while (true)
{
ArrayListlistYakuSu1 = findYakuSu(intMain);
int intSum1 =addYakuSu(listYakuSu1);
//String strDebug ="";
//String strDebug2= "";
if ( intSum1 ==intMain )
{
System.out.println("selfnum:" + intSum1);
//for (int i = 0; i< listYakuSu1.size(); i ++)
//{
// strDebug +=listYakuSu1.get(i);
// strDebug +=",";
//}
//System.out.println("YakuSu:"+ strDebug);
}
else
{
ArrayListlistYakuSu2 = findYakuSu(intSum1);
int intSum2 =addYakuSu(listYakuSu2);
if ( intSum2 ==intMain )
{
System.out.println("lovenum:" + intMain + "--" + intSum1);
//for (int i = 0; i< listYakuSu1.size(); i ++)
//{
// strDebug +=listYakuSu1.get(i);
// strDebug +=",";
//}
//System.out.println("YakuSu:"+ strDebug);
//for (int i = 0; i< listYakuSu2.size(); i ++)
//{
// strDebug2 +=listYakuSu2.get(i);
// strDebug2 +=",";
//}
//System.out.println("YakuSu:"+ strDebug2);
}
}
intMain ++;
if (intMain >intBig)
{
return;
}
}
}
public static intaddYakuSu (ArrayList listYakuSu)
{
//System.out.println("addYakuSustart ");
int sum = 0;
int temp = 0;
for (int i = 0; i< listYakuSu.size() ; i ++ )
{
temp =Integer.parseInt(listYakuSu.get(i).toString());
sum += temp;
}
//System.out.println("addYakuSuend " + sum);
//System.out.println("");
return (sum);
}
public staticArrayList findYakuSu (int intNum)
{
//String strDebug ="";
//System.out.println("findYakuSustart " + intNum);
ArrayListlistYakuSu = new ArrayList();
double dbNum =(double)intNum;
double dbRoot =Math.sqrt(dbNum);
Double d = newDouble(dbRoot);
int intRoot =d.intValue() ;
//System.out.println("root:"+ intRoot);
// if (intHalf * 2== intNum)
// {
// }
// else
// {
// intHalf ++;
// }
listYakuSu.add("1");
for (int i = 2; i
看了 :亲和数(AmicableN...的网友还看了以下:
如图,矩形ABCD中,AB等于4,BC等于7,点p是AD边上的一个动点,PE垂直PC,PE交AB于 2020-04-27 …
如图是由常见元素组成的一些单质及其化合物之间的转化关系图.常温常压下,B、E、F、H、I均为气体, 2020-05-13 …
相似三角形 1.已知,如图,AB⊥BD于B,CD⊥BD于D,连接AD、BC它们相交于E,EF⊥BD 2020-05-17 …
设b分之a等于d分之c等于f分之e等于3分之2,那么3b-6d-3f分之a-2c-e等于 2020-05-20 …
甘利明·江盈科呜呼,味之至甘者,莫过于利;人之至苦者,莫甚于贫。以至甘之味,投至厌苦之人,往往如石 2020-06-16 …
反比例函数:如图所示,已知双曲线y=x分之k与直线y=4分之1x相交于AB两点,在第一象上的点M( 2020-06-20 …
翻译:人之于鱼,不啻太山之于秋毫也,甘天下之味,亦类于一鱼之味耳. 2020-07-12 …
阅读下面的文字,完成1-3题。为无为之为,品无味之味80年代末著名哲学家、宗教学家、国家图书馆馆长任 2020-11-02 …
阅读下面的文字,完成1-3题。为无为之为,品无味之味80年代末著名哲学家、宗教学家、国家图书馆馆长任 2020-11-02 …
函数的连续及判断(e^x分之1)-e^-x分之1)/(e^x分之1+e-x分之1)=(e^x分之2) 2020-12-17 …