1.以给定数的算术平方为循环条件进行判断将大幅缩短执行时间 2.一个数和其真约数的和 不一定为亲和数
- #include
- #include
-
- void main()
- {
- int m, a, b,i,sum1,sum2,num;
- while (~scanf_s("%d", &m))
- {
- for (i = 0; i < m; i++)
- {
- sum1=sum2= 0;
- scanf_s("%d%d" ,&a, &b);
- num = pow(a, 0.5);
- while (num)
- {
- if (a % num == 0)sum1 += num + a / num;
- num--;
- }
- num = pow(b, 0.5);
- while (num)
- {
- if (b % num == 0)sum2 += num + b / num;
- num--;
- }
- if (sum1 - a == b && sum2 - b == a)printf("YES\n");
- else printf("NO\n");
- }
- }
- }