测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A37454. 质因数的个数因数:又称为约数,如果整数a除以整数b(b!=0) 的商正好是整数而没有余数,我们就说b是a的因数。质数:又称为素数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。2是最小的质数。质因数:如果一个数a的因数b同时也是质数,那么b就是a的一个质因数,例如: 8=2x2x2,2就是8的质因数;12=2x2x3,2和3就是12的质因数。

填空题 困难

题目描述

质因数的个数

因数:又称为约数,如果整数a除以整数b(b!=0) 的商正好是整数而没有余数,我们就说b是a的因数。

质数:又称为素数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。2是最小的质数。

质因数:如果一个数a的因数b同时也是质数,那么b就是a的一个质因数,例如: 8=2x2x2,2就是8的质因数;12=2x2x3,2和3就是12的质因数。

题目描述:

给定两个正整数N和M (1<=N<=M<=1e7) ,统计N到M之间 (含N和M) 每个数所包含的质因数的个数,输出其中最大的个数。

例如:

当N=6,M=10,6到10之间

6的质因数是2、3,共有2个

7的质因数是7,共有1个

8的质因数是2、2、2,共有3个

9的质因数是3、3,共有2个

10的质因数是2、5,共有2个

6到10之间的数中质因数最多的是8,质因数有3个,故输出3.

输入描述

输入两个正整数N和M (1<=N<=M<=1e7),两个正整数之间用一个空格隔开

输出描述

输出一个整数,表示质因数个数中的最大值

样例输入

6    10

样例输出

3

参考答案

#include <bits/stdc++.h> using namespace std; //定义了一个用来判断当前数最大质因数的函数 int f (int o) { int c = 1, k = 0; while (o != 1) { for (int i = 2; i <= sqrt(o); i++) { if (o % i == 0) { c++; k = i; break; } } o /= k; } return c; } int main() { int maxn = 0, n, m; cin >> n >> m; for (int i = n; i <= m; i++) { if (f(i) >= maxn) maxn = f(i); } cout << maxn; return 0; }
上一题 下一题