质数和水仙花数的判断

来源:互联网 发布:c语言动态分配内存 编辑:程序博客网 时间:2024/05/04 11:49

质数判断

定义:指在一个大于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;}


0 0