怎么改
  • 板块灌水区
  • 楼主zcx20242024
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/27 09:30
  • 上次更新2024/7/27 11:10:08
查看原帖
怎么改
1377954
zcx20242024楼主2024/7/27 09:30

题目描述 键盘输入N,N在2至2000之间,求2至N中的亲密数对,就是A的因子和等于B,B的因子和等于A,且A≠B。 如48和75是亲密数对。48的因子和为2+3+4+6+8+12+16+24=75,而75的因子和为3+5+15+25=48。

输入格式 只有一行,为一个整数N( 2<=N<=2000 )

输出格式 输出若干行,每行两个整数(用一个空格隔开)

using namespace std;
int jjy(int n)
{
	int sum=0;
	for(int i=2;i*i<=n;i++)
	{
		if(n%i==0) sum+=i+(n/i);
		if(i*i==n) sum-=i;
	}
	return sum;
}
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=2;i<=n;i++)
	{
		int bz1,bz2;
		bz1=jjy(i);
		bz2=jjy(bz1);
		if(bz2==i&&bz1!=i) printf("%d %d\n",i,bz1);
	}
	return 0;
}```
2024/7/27 09:30
加载中...