蓝桥杯-每日刷题-029

因子数与因子和

一、题目要求

  • 题目描述
    输入一个正整数N,求出这个数字存在多少个因子,以及因子之和。
  • 输入格式
    存在多组测试数据,每组测试数据输入一个正整数N(1<=N<=10^9)
  • 输出格式
    对于每组测试数据输出一行,包含两个数字,分别是因子数和因子和。
  • 输入样例
    12
    47
    35
  • 输出样例
    6 28
    2 48
    4 48

二、完整代码

cpp 复制代码
#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*5=25。6会是25的因子吗?

相关推荐
郝学胜-神的一滴6 小时前
图形学中的纹理映射问题:摩尔纹与毛刺的深度解析
c++·程序人生·unity·游戏引擎·图形渲染·unreal engine
如果你想拥有什么先让自己配得上拥有6 小时前
算数顺序的逻辑和发展?
算法
Cx330❀6 小时前
【优选算法必刷100题】第43题(模拟):数青蛙
c++·算法·leetcode·面试
杜子不疼.6 小时前
【LeetCode30_滑动窗口 + 哈希表】:三招搞定“串联所有单词的子串”
数据结构·算法·哈希算法
闻缺陷则喜何志丹6 小时前
【C++动态规划 状压dp】1879. 两个数组最小的异或值之和|2145
c++·算法·动态规划·力扣·数组·最小·动态规范
艾莉丝努力练剑6 小时前
【优选算法必刷100题:专题五】(位运算算法)第033~38题:判断字符是否唯一、丢失的数字、两整数之和、只出现一次的数字 II、消失的两个数字
java·大数据·运维·c++·人工智能·算法·位运算
光羽隹衡6 小时前
机器学习——DBSCAN算法
人工智能·算法·机器学习
vyuvyucd6 小时前
Java数组与Arrays类实战指南
数据结构·算法
csuzhucong6 小时前
七彩鹦鹉螺魔方
算法
逝川长叹6 小时前
利用 SSI-COV 算法自动识别线状结构在环境振动下的模态参数研究(Matlab代码实现)
前端·算法·支持向量机·matlab