[蓝桥 2023 省赛 T3] 质因数的个数 ~~求助~~
  • 板块学术版
  • 楼主CRRC
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/4/6 11:56
  • 上次更新2024/4/6 14:00:08
查看原帖
[蓝桥 2023 省赛 T3] 质因数的个数 ~~求助~~
1251448
CRRC楼主2024/4/6 11:56

描述

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

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

质因数:如果一个数a的因数b同时也是质数,那么 b就是a的一个质因数,例如: 8=2×2×2,2就是8的质因数,12=2×2×3, 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 main(){
    long long n,cnt=0;
    scanf("%lld",&n);
	for(long long i=2;i<=sqrt(n)&&n>1;i++){		
		if(n%i==0)			 
			cnt++;	
		while(n%i==0)		
			n/=i;
	}
	if(n>1)			
		cnt++;
    printf("%lld",cnt+1);
    return 0;
}
2024/4/6 11:56
加载中...