1 条题解

  • 0
    @ 2025-4-12 21:33:29

    C :

    #include <stdio.h>
    
    int main()
    {
    	int i, j;
    	for (i = 1; i <= 3000; i++)
    	{
    		int b = 0, n = 0;
    		for (j = 1; j < i; j++)
    			if (i % j == 0)
    				b += j;
    		for (j = 1; j < b; j++)
    			if (b % j == 0)
    				n += j;
    		if (n == i && i < b)
    			printf("(%d,%d)", i, b);
    	}
    	
    	return 0;
    }
    
    

    C++ :

    #include<iostream>
    #include<cmath>
    using namespace std;
    int f(int n)
    {
    	int t=sqrt(n),sum=1;
    	for (int i=2; i<=t; i++)
    		if (n%i==0) sum+=i+n/i;
    	if (n==t*t) sum-=t;
    	return sum; 
    }
    int main()
    {
    	for (int i=1; i<=3000; i++)
    	{
    		int a=f(i);
    		if (i==f(a) && a<=3000 && i<a)
    			cout<<"("<<i<<","<<a<<")";
    	}
    	cout<<endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    104
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者