第二个测试点WA,求助
查看原帖
第二个测试点WA,求助
759881
ylch楼主2023/7/27 19:57
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;

ll n;
ll ans = 1; //因为1不能出现在循环里,要初始化上

signed main()
{
	scanf("%lld", &n);
	
	if (n == 1)	return printf("Deficient\n"), 0; //特判
	
	for (int i=2; i*i<=n; i++) //统计因数个数,方法类似四元组
	{
		if (n%i==0) //如果是n的因数
		{
			ans += i; //加上他
			ans += n/i; //加上另一个
		}
		if (i==sqrt(n) && n%i==0) //如果n是平方数
		{
			ans -= i; //减去这个数
		}
	}
	
	if (ans == n)	printf("Perfect\n");
	else if(ans > n)	printf("Abundent\n");
	else	printf("Deficient\n");
	
	return 0;
}

谢谢大佬们!

2023/7/27 19:57
加载中...