质数判断
定义:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数
bool IsPrimerNumber(int nData)
{
for (int i = 2 ; i*i <= nData ; ++i)
{
if (nData % i == 0)
{
return false;
}
}
return true;
}
水仙花数判断
定义:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
bool IsDaffodilsNumber(int nData)
{
if (nData < 100)
return false;
int nSourceData = nData;
vector<int> vec;
while (1)
{
int nRemainder = nData % 10;
nData /= 10;
vec.push_back(nRemainder);
if (nData < 10)
{
vec.push_back(nData);
break;
}
}
int nSum = 0;
int nSize = vec.size();
vector<int>::reverse_iterator iter;
for (iter = vec.rbegin() ; iter != vec.rend() ; ++iter)
{
int nProduct = 1;
for (int i = 1 ; i <= nSize ; ++i)
{
nProduct *= (*iter);
}
nSum += nProduct;
}
if (nSourceData != nSum)
return false;
return true;
}