电子商务系统网站建设,衡水网站建设格公司,wordpress文章底部文字广告,js搜索网站开发因子数与因子和
一、题目要求
题目描述 输入一个正整数N#xff0c;求出这个数字存在多少个因子#xff0c;以及因子之和。输入格式 存在多组测试数据#xff0c;每组测试数据输入一个正整数N(1N10^9)输出格式 对于每组测试数据输出一行#xff0c;包含两个数字求出这个数字存在多少个因子以及因子之和。输入格式 存在多组测试数据每组测试数据输入一个正整数N(1N10^9)输出格式 对于每组测试数据输出一行包含两个数字分别是因子数和因子和。输入样例 12 47 35输出样例 6 28 2 48 4 48
二、完整代码
#include iostream
int main()
{long long a;while (std::cin a){long long c 0;long long b 0;for (long long i 1; i * i a; i){if (a % i 0){b;c i;if (i ! a / i){b;c a / i;}}}std::cout b c std::endl;}
}代码解析 核心是判断因子何为因子呢简单来说就是可以被该数整除的数。 所以根据这个简单的理解那么就有思路了。 如果数字a可以被原数n整除那么a肯定是因子 一般来说n除以a的商也是n的因子如果商等于a那么重复了因子数就不能加1。 为了减少遍历次数因为一旦一个数的平方大于n那么这个数就肯定不会是因子了。想一想5*525。6会是25的因子吗