当前位置: 首页 > article >正文

质因数个数

0质因数个数 - 蓝桥云课

质因数个数

问题描述

给定正整数 n,请问有多少个质数是 n 的约数。

输入格式

输入的第一行包含一个整数 n。

输出格式

输出一个整数,表示 n 的质数约数个数。

样例输入
396
样例输出
3
样例说明

396 有 2, 3, 11 三个质数约数。

评测用例规模与约定
  • 对于 30% 的评测用例,1 ≤ n ≤ 10000。
  • 对于 60% 的评测用例,1 ≤ n ≤ 10^9。
  • 对于所有评测用例,1 ≤ n ≤ 10^16。
运行限制
  • 最大运行时间:10s
  • 最大运行内存:512M

思路:

首先我们要知道一个数n,他的质因子出现在2~sqrt(n),或者n本身就是一个大于sqrt(n),的质数。

假设n是某个大的质数的平方,那么当i循环到sqrt(n)的时候,如果n还没有被除尽,那么剩下的n可能就是一个大的质数。

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e7+10;
ll n;
vector <ll> num;
int main(void)
{
	map <ll,ll> mp;
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for(ll i = 2 ; i <= sqrt(n) ; i++)
	{
		ll k = i;
		while(n % k == 0)
		{
			if(!mp[k])
			{
				mp[k] = 1;
				num.push_back(k);
			}
			n /= k;
		}
	}
	if(n > 1)
	cout << num.size() + 1;
	else
	cout << num.size();
	return 0;
}


http://www.kler.cn/a/591179.html

相关文章:

  • Agent系列——BabyAGI调研
  • 自动化测试工具-Playwright介绍和快速实例
  • 前端面试:axios 请求的底层依赖是什么?
  • docker 的volumes如何清理
  • docker和k8s区别详解
  • (位运算 水题?407周赛题?o 使两个整数相等的位更改次数)leetcode 3226
  • 使用el-tooltip封装省略号组件内容超出显示tooltip
  • 基于Android语言实现身份证二要素核验-身份证实名认证API
  • vscode使用ssh同时连接主机CentOS:user和ubuntu20.04:docker
  • Canary
  • 堆排序:力扣215.数组中的第K个大元素
  • 使用React和google gemini api 打造一个google gemini应用
  • RustDesk自建远程桌面服务教程
  • 蓝桥杯练习day1:自除数
  • 深入理解 C 语言中的 scanf、printf
  • 《算法笔记》9.2小节——数据结构专题(2)->二叉树的遍历 问题 D: 二叉树遍历
  • 受控组件非受控组件
  • 新造车不再比拼排名,恰是曲终人散时,剩者为王
  • 【大语言模型知识】Transformer架构概述
  • LLVM学习-- 构建和安装