首先因数的定义:
  因数是指整数 a 除以整数 b ( b≠0 ) 的商正好是整数而没有余数,我们就说 b 是 a 的因数。

问题一:区间因数和

描述:求解 [L,R] 区间内所有的因数之和,R <= maxx(一般<=1e6)
提前打表,求谁带谁

 //求解[1,maxx]每个数的因数和for(int i=1;i<=maxx;i++){for(int j=1;j<=maxx/i;j++){num[i*j] += i;}}for(int i=2;i<=maxx;i++){num[i] += num[i-1];}cout<<num[r]-num[l-1]<<endl;

那么,对于多次询问且数量级在1e6一下的某个数的因数和的问题,也可以直接这样打表。
AC代码:
例题链接:Query Theory I

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
typedef long long ll;
const int maxn = 1000010;
const int maxx = 1000000;
ll num[maxn];
int main(void)
{for(int i=1;i<=maxx;i++){for(int j=1;j<=maxx/i;j++){num[i*j] += i;}}for(int i=2;i<=maxx;i++){num[i] += num[i-1];}int q;scanf("%d",&q);while(q--){int l,r;scanf("%d%d",&l,&r);printf("%lld\n",num[r]-num[l-1]);}return 0;
}

问题二:区间因数个数

描述:求解 [1,x] 区间内因数的个数,x <= maxx(一般 1e9 左右)
套用公式,求谁带谁
[1,x] 的 因数个数公式:
ans=2∗∑i=1sq(x/i)−sq∗sqans = 2*\sum_{i=1}^{sq}(x/i) -sq*sq ans=2∗i=1∑sq​(x/i)−sq∗sq
sq=xsq = \sqrt{x}sq=x​
例题链接:因数个数和
AC代码:

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
typedef long long ll;
const int maxn = 1000010;
int main(void)
{int n,x;scanf("%d",&n);while(n--){scanf("%d",&x);int sq = sqrt(x);ll ans = 0;for(int i=1;i<=sq;i++){ans += (x/i);}ans = 2*ans-sq*sq;printf("%lld\n",ans);}return 0;
}

因数和以及因数个数和问题相关推荐

  1. 分解因数和求因子个数

    1.分解因数 链接:分解因数__牛客网 来源:牛客网 所谓因子分解,就是把给定的正整数a,分解成若干个素数的乘积,即 a = a1 × a2 × a3 × ... × an,并且 1 < a1 ...

  2. 【入门】求因数和、因数个数

    题目描述 请求出一个整数n有哪些因数(因数就是能够被n整除的数),请输出这些因数,并求出这些数的总和.总个数: 比如,如果输入整数10,那么输出如下: 1 2 5 10 18 4 其中:1 2 5 1 ...

  3. java求因数_java求质因数

    package test; import java.util.ArrayList; public class PrimeFactors { public static void main(String ...

  4. C++判断是否为素数、求一个数的因数、质因数分解

    判断一个数是否为素数 #include<iostream> #include<vector> #include<math.h> #include<algori ...

  5. 利用线性筛算法框架求解因数个数以及因数和问题

    利用线性筛算法框架求解因数个数以及因数和问题 一 前言 关于线性筛算法,在前一篇文章 利用线性筛以及素数筛求某一范围内的所有素数中已经介绍过,若读者对线性筛算法不太了解或有所遗忘,可以点击链接查看.此 ...

  6. 一个数的因子、因数的区别

    因子就是所有可以整除这个数的数,不包括这个数自身. 而因数就是所有可以整除这个数的数,但包括这个数自身. 一个数的因子.因数的区别 因数包括这个数本身而因子不包括 例:15的因子是1,3,5 而因数为 ...

  7. 关于一个数的因数个数 与 所有因数的和

    1. 暴力拆解 n为所要处理的数 int c=0,s=0;     //记录个数与和 for(int i=1;i*i<=n;i++){ if(n%i==0){ c+=2; s=s+i+s/i;  ...

  8. 判断非负整数是否是3的倍数_五年级数学因数与倍数知识点汇总与解题方法技巧...

    在日常教学过程中,我发现孩子们和某些家长对学习数学的方法有一些误区,就是觉着数学,单纯就是逻辑思维,只要多做练习题就能学好,但是不是这样的,低年级的学生,学习数学还是以背诵为主,练习与背诵同步才行,像 ...

  9. 《分解因数》:质因数分解

    目录 一.题目: 二.思路: 三.代码: 一.题目: 分解因数      <分解因数>题目链接 所谓因子分解,就是把给定的正整数a,分解成若干个素数的乘积,即 a = a1 × a2 × ...

最新文章

  1. 74cms 骑士人才系统v3.5.1 正式版
  2. (转)Ubuntu10.04各文件夹的作用
  3. 0x00000000 处有未经处理的异常: 0xC0000005: 在位置 0x0000000000000000 发生访问冲突
  4. python条件替换_Python中Numpy条件替换操作一例
  5. e记法 python 底数_干货满满,30个Python源代码!
  6. activiti 设置候选人_中标 | 河南移动公示无源波分复用设备集采中标候选人名单:3家厂商上榜...
  7. 3. 安装 phpmyadmin
  8. 拓端tecdat|卡尔曼滤波器:用R语言中的KFAS建模时间序列
  9. 服务器指令学习记录-----ska暑期训练
  10. java图书管理系统毕业设计_java图书管理系统毕业论文
  11. ADC0804工作原理及过程
  12. android wifi 共享网络,手机与电脑之间共享网络的设置方法(Android无线网络共享设置指南)...
  13. 详解ZStack Cloud v4.0:自研VPC网络模型实践指南
  14. spark RDD算子大全
  15. 矩阵旋转(左旋,右旋)
  16. java word转Pdf 指定字体库
  17. 电脑开机黑屏一串英文_电脑开机黑屏一串英文字母是为什么 开不了机
  18. 是否需要读万卷书,行万里路
  19. wpf 模拟抖音很火的罗盘时钟,附源码,下载就能跑
  20. 语言c1和c2,工程绘图c2(机械制图中C1表示什么?它和C2的区别是什么?)

热门文章

  1. 论文阅读笔记 | 三维目标检测——VoxelRCNN算法
  2. ERP服务器虚拟机,全球首发!Windows Server 2008虚拟机ERP压力测试
  3. document在方法外获取对象无法获取数据
  4. 逻辑树与可视树[转]
  5. 文本溢出显示省略号,鼠标浮动查看全部内容
  6. 计算机与scp通讯发生故障,在两台远程计算机之间使用scp命令时权限被拒绝错误...
  7. php插入语句,请教关于php中sql插入语句的问题。
  8. matlab怎么调用主函数,Matlab中一个函数调用另外一个函数的操作步骤
  9. 使用vagrant工具来管理和创建虚拟机
  10. 为什么劝你要学习Golang以及GO语言(Go语言知识普及)