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;
}