C语言求指教
答案:2 悬赏:80 手机版
解决时间 2021-02-09 16:08
- 提问者网友:末路
- 2021-02-09 08:58
两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
最佳答案
- 五星知识达人网友:长青诗
- 2021-02-09 09:16
int harmonys[][2];
int harmonysindex = 0;
for(int i=1;i<=3000;i++){
int si = sumdevide(i);
for(int j=i+1;j<=3000;j++){
int sj = sumdevide(j);
if(si == sj){
harmonys[harmonysindex][0]=i;
harmonys[harmonysindex][1]=j;
harmonysindex++;
}
}
}
//------------------------------------
function int sumdevide(num){
int sq = math.sqrt(num);
int s = 0;
for(int k =0;k<=sq;k++){
if(num%k == 0){
s+=k;
}
}
return s;
}
int harmonysindex = 0;
for(int i=1;i<=3000;i++){
int si = sumdevide(i);
for(int j=i+1;j<=3000;j++){
int sj = sumdevide(j);
if(si == sj){
harmonys[harmonysindex][0]=i;
harmonys[harmonysindex][1]=j;
harmonysindex++;
}
}
}
//------------------------------------
function int sumdevide(num){
int sq = math.sqrt(num);
int s = 0;
for(int k =0;k<=sq;k++){
if(num%k == 0){
s+=k;
}
}
return s;
}
全部回答
- 1楼网友:十鸦
- 2021-02-09 10:46
#include "stdio.h"
main()
{ double a,b,c,s,v;
printf("input a,b,c:\n");
scanf("%f %f %f",&a,&b,&c); /改为scanf("%lf %lf %lf",&a,&b,&c);
s=a*b; v=a*b*c;
printf("%f %f %f",a,b,c);/改为printf("%lf %lf %lf",a,b,c);
printf("s=%f,v=%f\n",s,v);/改为printf("s=%lf,v=%lf\n",s,v);
} 这样就正确了
main()
{ double a,b,c,s,v;
printf("input a,b,c:\n");
scanf("%f %f %f",&a,&b,&c); /改为scanf("%lf %lf %lf",&a,&b,&c);
s=a*b; v=a*b*c;
printf("%f %f %f",a,b,c);/改为printf("%lf %lf %lf",a,b,c);
printf("s=%f,v=%f\n",s,v);/改为printf("s=%lf,v=%lf\n",s,v);
} 这样就正确了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯