|
5鱼币
本帖最后由 sunnyrubik 于 2018-10-26 00:02 编辑
(题目要求)
亲密的数字。如果整数A的全部因子(包括1,不包括A)之和等于B;且整数B的全部因子(包括1,不包括B)之和等于A,则将整数A和B称为亲密数。求n以内的全部亲密数。要求:
输入:n (n是不小于1的整数)
输出:1~n以内的全部亲密数。注意当输入条件不满足时,输出“Input error!”
提示:最小的一对亲密数是:220--284
- #include<stdio.h>
- #include<stdlib.h>
- int yinzihe(int x);
- int main()
- {
- int n;
- int a,b,mid;
- printf("请输入数字n\n");
- scanf("%d",&n);
- if(n<1){printf("您输入的是无效数字\n");}
- else
- {
- for(a=1;a<=n;++a)
- {
- mid=yinzihe(a);
- b=mid;
- if(a==yinzihe(b)){printf("%d----%d",a,b);}
-
- }
- }
- system("pause");
- return 0;
-
- }
- int yinzihe(int x)//定义函数yinzihe求整数A的全部因子(包括1,不包括A)
- {
- int y,i=1,sum=0;
- scanf("%d",&y);
- for(y=y;i<y;++i)
- {
- if(0==y%i)
- {
- sum+=i;
- }
- }return sum;
- }
复制代码
但是它不能运行出结果,这是为是什么呢?
什么没问题?问题可大了
int x; printf("%d",yinzihe(x)); // x 是啥?没有初始化,垃圾值
for(y=y;i<y;++i) // 你去哪里学的??
最小的亲密数是 220 ----- 284,哪来的12,16??
|
-
-
最佳答案
查看完整内容
什么没问题?问题可大了
int x; printf("%d",yinzihe(x)); // x 是啥?没有初始化,垃圾值
for(y=y;i
|