|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 生姜ZYX 于 2021-4-10 19:09 编辑
为什么把for循环改成while循环就不对了呢?亲密数对问题
寻找n以内的亲密数对。如果a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对。
#include <stdio.h>
int factorsum(int x){
int a=1,sum=0;
while(a<x)
{ if(x%a==0)
sum=sum+a;
a++;
}
return sum;
}
int main(){
int n,i=1,j,m;
scanf("%d",&n);
while(i<=n) {
m=factorsum(i);
for(j=i+1;j<=n;j++)
{
if(factorsum(j)==i&&m==j){
printf("%d<-->%d\n",i,j);}
}
i++;
}
}
本帖最后由 肖-肖 于 2021-4-10 23:24 编辑
嗯 我也改了下:
- int main(){
- int n,i=1,j,m;
- scanf("%d",&n);
- while(i<=n)
- {
- m=factorsum(i);
- j=i+1;
- while(j<=n)
- {
- if(factorsum(j)==i&&m==j)
- {
- printf("%d<-->%d\n",i,j);
- }
- j++;
- }
- i++;
- }
- return 0;
- }
复制代码
应该一样吧~ 
其实应该加上:return 0;的!
还有就是设置下最佳答案吧~
|
|