Acwing-197-阶乘分解(质数)
链接:
https://www.acwing.com/problem/content/199/
题意:
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pi 和 ci 即可。
思路:
对于n!, 考虑1-n的质数, 对于每个质数,pk在n!出现的次数为n/(pk).
计算k时, 会计算k+1,的次数, 所以每个只用加一次.
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6+10;
int IsPri[MAXN], Pri[MAXN];
long long Cnt[MAXN];
int pos, n;
void Euler()
{
memset(IsPri, 0, sizeof(IsPri));
memset(Pri, 0, sizeof(Pri));
memset(Cnt, 0, sizeof(Cnt));
IsPri[1] = 1;
pos = 0;
for (int i = 2;i <= n;i++)
{
if (IsPri[i] == 0)
Pri[++pos] = i;
for (int j = 1;j <= pos && Pri[j]*i <= n;j++)
{
IsPri[Pri[j]*i] = 1;
if (i%Pri[j] == 0)
break;
}
}
}
int main()
{
scanf("%d", &n);
Euler();
for (int i = 1;i <= pos;i++)
{
long long tmp = Pri[i];
while (tmp <= n)
{
Cnt[i] += n/tmp;
tmp *= Pri[i];
}
}
for (int i = 1;i <= pos;i++)
printf("%d %lld\n", Pri[i], Cnt[i]);
return 0;
}
Acwing-197-阶乘分解(质数)的更多相关文章
- AcWing 197. 阶乘分解 (筛法)打卡
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ...
- Acwing 197. 阶乘分解
给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ...
- 数论-质数 poj2689,阶乘分解,求阶乘的尾零hdu1124, 求尾零为x的最小阶乘
/* 要求出[1,R]之间的质数会超时,但是要判断[L,R]之间的数是否是素数却不用筛到R 因为要一个合数n的最大质因子不会超过sqrt(n) 所以只要将[2,sqrt(R)]之间的素数筛出来,再用这 ...
- 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m
给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...
- luogu1445 [violet]樱花 阶乘分解
题目大意 求方程$$\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$$的正整数解的组数. 思路 咱们把式子整理得$$xy-(x+y)N!=0$$.$xy$和$x+y$?貌似可 ...
- CH 3101 - 阶乘分解 - [埃筛]
题目链接:传送门 题解: $(1e6)!$ 这种数字,表示都表示不出来,想直接 $O(\sqrt{N})$ 分解质因数这种事情就不要想了. 考虑 $N!$ 的特殊性,这个数字的所有可能包含的质因子,就 ...
- LightOJ 1340 - Story of Tomisu Ghost 阶乘分解素因子
http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分 ...
- LightOJ - 1138 (二分+阶乘分解)
题意:求阶乘尾部有Q(1 ≤ Q ≤ 108)个0的最小N 分析:如果给出N,然后求N!尾部0的个数的话,直接对N除5分解即可(因为尾部0肯定是由5*2构成,那么而在阶乘种,2的因子个数要比5少,所以 ...
- NEU 1173: 这是物理学的奇迹!! 分解质数
1173: 这是物理学的奇迹!! 题目描述 goagain在做物理电学实验时需要一个2Ω的电阻,但是他发现他的实验台上只剩下了3Ω,4Ω,5Ω,6Ω的电阻若干,于是goagain把两个4Ω的电阻并联起 ...
随机推荐
- Centos7 安装部署 Airflow
本人在centos7 的环境下部署,怎么在centos7 下配置静态 IP 关闭防火墙 以及安装jdk在这里不多赘述, centos7 配置静态ip可以参考:https://www.cnblogs.c ...
- 【转帖】 解开龙芯与mips4000的关系
-- 苏联给的套件,我们只要把电子管插上就好. -- 千万次机器,不晓得来源 DJS-130系列,16位小型机,仿造美国NOVA DJS-180系列,超级小型机,仿造美国DEC VAX, 能跑DEC的 ...
- (五)Java秒杀项目之页面优化
一.页面缓存+URL缓存+对象缓存 1.通过加缓存来减少对数据库的访问 2.步骤: 取缓存 手动渲染模版 结果输出 3.页面缓存和URL缓存的过期时间比较短,比较适合变化不大的场景,比如商品列表页.而 ...
- centerOS7安装lnmp环境
视频地址: https://www.bilibili.com/video/av55251610?p=65 安装nginx http://nginx.org 点击 download vim /etc/y ...
- Spring 注解介绍
@Component与@Bean的区别 @Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean. @Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注 ...
- T100——菜单action控制单身栏位的修改
通过菜单ACTION来控制单身栏位内容的编辑修改: 范例axmt500: DEFINE l_xmdcua012_bk DYNAMIC ARRAY OF RECORD # ljr xmdcua012 L ...
- Spring实战(十三)Spring事务
1.什么是事务(Transaction)? 事务是指逻辑上的一组操作,要么全部成功,要么全部失败. 事务是指将一系列数据操作捆绑成为一个整体进行统一管理.如果某一事务执行成功,则该事务中进行的所有数据 ...
- mybatis+oracle批量插入报不符合协议和sql未正确结束
在Java中循环save,需要加useGeneratedKeys="false",否则报错不符合协议 mybatis批量插入,也需要在insert里加入 useGeneratedK ...
- 【原创】大叔问题定位分享(33)oozie提交任务报错ArithmeticException: / by zero
oozie提交workflow后执行task报错: 2019-07-04 17:19:00,559 ERROR [RMCommunicator Allocator] org.apache.hadoop ...
- python增量爬虫
import pymysql def insert_db(db_table, issue, time_str, num_code): host = '127.0.0.1' user = 'root' ...