Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341523
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:06:27

试着编了一下,还能用,你看看吧^_^

#include
#include

void main(int argc, char* argv[])
{
int N,fkt1[100],fkt2[100],i,j,k,l,m,n=0,num1,num2,rslt[100][100];
cout<<"请输入范围(0~32768):";
cin>>N;
for(i=4;i {
num1=1;
num2=1;
k=0;
m=0;
for(j=2;j<=i/2;j++)            //寻找A的因子并计算因子之和
{
if(i%j==0)
{
fkt1[k++]=j;
num1+=j;
}
}
if(num1>i&&num1<=N)            //判断是否3〈A〈B〈=N
{
for(l=2;l<=num1/2;l++)            //寻找B的因子并计算因子之和
{
if(num1%l==0)
{
fkt2[m++]=l;
num2+=l;
}
}
if(num2==i)            //判断B的全部因子之和(本身除外)是否等于A
{
rslt[n][0]=i;
j=0;
while(fkt1[j])
{
rslt[n][j+1]=fkt1[j];
j++;
}
rslt[n+1][0]=num1;
j=0;
while(fkt2[j])
{
rslt[n+1][j+1]=fkt2[j];
j++;
}
n+=2;
}
}
}
for(i=0;i {
cout<<"("< cout< j=0;
while(rslt[i+1][j]>0&&rslt[i+1][j] {
cout<<" "< j++;
}
cout<<"之和为"< cout< j=0;
while(rslt[i][j]>0&&rslt[i][j] {
cout<<" "< j++;
}
cout<<"之和为"< }
}

--------------------next---------------------
我可不是什么高手,我又看了一下,昨天马虎了,没有实现全部的功能,有两个错,错的比较巧,所以没看出来。
这是更新以后的:

void main(int argc, char* argv[])
{
int N,fkt1[100],fkt2[100],i,j,k,l,m,n=0,p,num1,num2,rslt[100][100];
cout<<"请输入范围(0~32768):";
cin>>N;
for(i=4;i {
num1=1;
num2=1;
k=0;
m=0;
for(p=0;p<100;p++)          //每次循环前对存放因子的临时数组重新赋值
{
fkt1[p]=0;
fkt2[p]=0;
}
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
fkt1[k++]=j;
num1+=j;
}
}
if(num1>i&&num1<=N)
{
for(l=2;l<=num1/2;l++)
{
if(num1%l==0)
{
fkt2[m++]=l;
num2+=l;
}
}
if(num2==i)
{
rslt[n][0]=i;
j=0;
while(fkt1[j])
{
rslt[n][j+1]=fkt1[j];
j++;
}
rslt[n+1][0]=num1;
j=0;
while(fkt2[j])
{
rslt[n+1][j+1]=fkt2[j];
j++;
}
n+=2;
}
}
}
for(i=0;i {
cout<<"("< cout< j=1;                                                                //把j的值改一下才对
while(rslt[i+1][j]>0&&rslt[i+1][j] {
cout<<" "< j++;
}
cout<<"之和为"< cout< j=1;                                                                //把j的值改一下才对
while(rslt[i][j]>0&&rslt[i][j] {
cout<<" "< j++;
}
cout<<"之和为"< }
}

真是不好意思,怪我粗心大意。◎_◎

--------------------next---------------------

阅读(1028) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~