Day05-03 特殊的完全平方数和亲密数

1.特殊的完全平方数:100~999中既是完成平方数,但又有两位数字相同

2.亲密数:A的全部因子(除了A)之和 =B, B的全部因子(除了B)之和 = A, 则A与B为亲密数

 

1.特殊的完全平方数 solution:

/**
1.特殊的完全平方数 
*/ 

#include <iostream>
#include <cmath>
#include <cfloat>
using namespace std;

int main()
{
	int num = 0;
	for(int i=1;i<=9;i++){
		for(int j=0;j<=9;j++){
			for(int  k=0;k<=9;k++){
				num = i*100+j*10+k;
				double sqrtnum = sqrt(num);
				if((sqrtnum-int(sqrtnum)<=DBL_EPSILON)&&(i==j||i==k||j==k)) //DBL_EPSILON 是误差判定系数,也可以用0.000001这种比较小的小数,就是为了判别sqrtnum是否为整数 
					cout<<num<<endl;			
			}
		}
	}
	
	
	return 0;
}

 

2.亲密数 solution:

#include <iostream>
using namespace std;


void getSum(int x,int &s){
	for(int i=1;i<x;i++){
		if(x%i==0)
			s+=i;
	}
}

int main()
{
	int a,b;
	cout<<"请输入两个数"<<endl;
	cin>>a>>b;
	int sa = 0,sb = 0;
	getSum(a,sa);
	getSum(b,sb);
	if(sa==b&&sb==a)
		cout<<"这两个数是亲密数"<<endl;
	else
		cout<<"这两个数不是亲密数"<<endl;
	
	return 0;
}

 

 

上一篇:习题4-2 求幂级数展开的部分和 (20分)


下一篇:Asia Yokohama Regional Contest 2018 G题 What Goes Up Must Come Down