读书人

有人可以给出个完成的程序么?小女子在

发布时间: 2012-03-22 17:43:57 作者: rapoo

有人可以给出个完成的程序么?小女子在此谢过了!
小女子再次拜谢各位哥哥姐姐。。。

如果整数a的全部小于a的因子(包括1,但是不包括a本身,且互不相等)之和等于b,且整数b的所有小于b的全部因子(包括1,但是不包括b本身且互不相等)之和等于a,则称a和b为亲密数对。在键盘上输入整数m和n(10 <m <n <32000),求m和n之间所有满足a <b的亲密数对,并且以每行3对的形势输出。

[解决办法]
// Here you go
#include <iostream>

int factorSum(int n)
{
int index, sum;
sum=1;

for (index=2; index <=n/2; index++)
if (n%index==0) sum+=index;
return sum;
}

void main()
{

std::cout < < "This program is used to calcuate the affine pairs\n ";
std::cout < < "Input the minimum number(> 10) and maximum number( <32000)\n ";
int m, n;
std::cin > > m > > n;
std::cout < < std::endl;
std::cout < < "The affine pairs between " < < m < < " and " < < n < < " are: " < < std::endl;
int count = 0;
std::cout.precision(5);
for (int i=m; i <=n; i++)
{
int fsum=factorSum(i);
if(fsum> i) {
int j=factorSum(fsum);
if (j==i){
std::cout < < "{ ";
std::cout.width(6);
std::cout < < i;
std::cout < < ", ";
std::cout.width(6);
std::cout < < fsum;
std::cout < < "}\t ";
if(count == 2) {
count = 0;
std::cout < < std::endl;
}
else count++;
}
}
}
std::cout < <std::endl;
}

读书人网 >C++

热点推荐