P2043 质因子分解
P2043 质因子分解
题目描述
对N!进行质因子分解。
输入输出格式
输入格式:
输入数据仅有一行包含一个正整数N,N<=10000。
输出格式:
输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开。表示N!包含a个质因子p,要求按p的值从小到大输出。
因为\(N\)的范围比较小,我们考虑将范围内的质数打表打出来。因为一个数有唯一质数分解,分解为有限个质数的乘积,所以我们对每一个\(N\!\)的因子进行质数分解,将所有因数答案累计即可
附:线性筛
int prime[maxn], tot;
bool vis[maxn];
void get_prime(int n){
for(int i = 2;i <= n;i++){
if(!vis[i])prime[++tot] = i;
for(int j = 1;j <= tot && prime[j] * i < n;j++){
vis[prime[j] * i] = 1;
if(i % prime[j] == 0)break;
}
}
}
Code
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int RD(){
int flag = 1, out = 0;char c = getchar();
while(c < '0' || c > '9'){if(c == '-')flag = -1;c = getchar();}
while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}
return flag * out;
}
const int maxn = 10019;
int a;
int prime[maxn], tot;
bool vis[maxn];
void get_prime(int n){
for(int i = 2;i <= n;i++){
if(!vis[i])prime[++tot] = i;
for(int j = 1;j <= tot && prime[j] * i < n;j++){
vis[prime[j] * i] = 1;
if(i % prime[j] == 0)break;
}
}
}
int ans[maxn];
int main(){
a = RD();
get_prime(a);
for(int i = 1;i <= a;i++){
int now = i;
for(int j = 1;j <= tot && prime[j] <= i;j++){
while(now % prime[j] == 0)ans[j]++, now /= prime[j];
}
}
for(int i = 1;i <= tot;i++){
if(ans[i])printf("%d %d\n", prime[i], ans[i]);
}
return 0;
}
P2043 质因子分解的更多相关文章
- P2043 质因子分解(阶乘的质因数分解)
P2043 质因子分解 对$n!$进行质因数分解的一种高效算法 首先,筛出$<=n$的素数 蓝后,对$n$反复除以$prime$,同时$cnt+=n/prime$ $n!$中含有该$prime$ ...
- luogu P2043 质因子分解
题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开.表示N ...
- 洛谷 P2043质因子分解 题解
题目传送门 N的范围很小,所以使用O(n2)的算法就能过啦! #include<bits/stdc++.h> using namespace std; ],n; int main(){ c ...
- BZOJ 1485: [HNOI2009]有趣的数列 [Catalan数 质因子分解]
1485: [HNOI2009]有趣的数列 Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所 ...
- A 洛谷 P3601 签到题 [欧拉函数 质因子分解]
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...
- POJ1845:Sumdiv(求因子和+逆元+质因子分解)好题
题目链接:http://poj.org/problem?id=1845 定义: 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元. 为什么要有乘法逆元呢? 当我们要求(a/b) mod p的 ...
- Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)
题意: 找出一个集合中的最大独立集,任意两数字之间不能是素数倍数的关系. 思路: 最大独立集,必然是二分图. 最大数字50w,考虑对每个数质因子分解,然后枚举所有除去一个质因子后的数是否存在,存在则建 ...
- LightOJ1138 —— 阶乘末尾0、质因子分解
题目链接:https://vjudge.net/problem/LightOJ-1138 1138 - Trailing Zeroes (III) PDF (English) Statistic ...
- LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数
题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function PDF (English) Statistics Forum ...
随机推荐
- “私人助手”Beta版使用说明
私人助手(Beta)版使用说明 私人助手这款软件是通过添加事件提醒功能,让用户能在正确的时间做正确的事情,使得工作变得更有效率,而这款软件的特色在于提醒模式的添加,用户可以通过震动.铃声提醒,我们的特 ...
- 《Spring2之站立会议4》
<Spring2之站立会议4> 昨天,对主界面进行了设计,编写了主界面的代码,把文本输入框,显示框,发送,关闭两个按钮的功能实现了: 今天,接着对主界面进行代码的编写,实现了界面的美化,从 ...
- dubbo面向服务使用
首先启动zookeeper dubbo集群,使用两个dubbo,一个服务,一个调用,使用zookeeper管理 zeekeeper的功能:管理集群,保证集群成员的数据一致性和动作的协调 服务端: se ...
- 第八周PSP&进度条
团队项目PSP 一.表格: C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论各个模块页面设计 9:30 12:30 站立会议 分配 ...
- json数据进行格式化
<?php /** Json数据格式化 * @param Mixed $data 数据 * @param String $indent 缩进字符,默认4个空格 * @return JSON */ ...
- [转帖学习] 使用阿里云证书 升级https
nodejs从http升级到https(阿里云证书的使用) https://home.cnblogs.com/u/lhyxq/ 改天买一个域名自己试试. 升级原因 1.各大搜索引擎中,https ...
- mysql 简单sql语句
1.修改数据库的编码 alter database test character set utf8 2.创建新表 : create table text4(id int( ...
- js 时间处理函数 获取今天的前几天和后几天的任意一天
var now = new Date(); let today = now.getFullYear() + '-' + (now.getMonth() + 1) + '-' + now.getDa ...
- 2013成都网赛1010 hdu 4737 A Bit Fun
题意:定义f(i, j) = ai|ai+1|ai+2| ... | aj (| 指或运算),求有多少对f(i,j)<m.1 <= n <= 100000, 1 <= m &l ...
- HTML标签参考手册
按字母顺序排列 New : HTML5 中的新标签. 标签 描述 <!--...--> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义锚. < ...