POJ 1365 Prime Land
题意不好理解啊..
以下摘自discuss
已知任意一个大于1的数可以表示成一些素数的乘积,即x=p1^e1*p2^e2…… pn^en (pi 为素数,ei 为对应素数的个数),现给你x的表示,要你求x-1的 表示。 例:输入:5 1 2 1 则x=5^1*2^1=10,所以x-1=9,9可以表示成:9=3^2 输出:3 2
思路:反复试除
#include <string.h>
#include <math.h>
const int MAXN = 33333;
int prime[MAXN],num;
bool is[MAXN];
int getPri(){
int i, j, k = 0;
int s, e = (int)(sqrt(MAXN + 0.0) + 1);
memset(is, 1, sizeof(is));
prime[k++] = 2; //2是素数
is[0] = is[1] = false;
for(i = 4; i < MAXN; i += 2) //筛掉偶数
is[i] = false;
for(i = 3; i < e; i += 2){ //i 奇数
if(is[i]){
prime[k++] = i;
for(s = i * 2, j = i * i; j < MAXN; j += s)
is[j] = false;
}
}
for(; i < MAXN; i += 2)
if(is[i])
prime[k++] = i;
return k;
}
void solve(int x){
bool first = true;
for(int i = num - 1; i >= 0; --i){
int cnt = 0;
while( x % prime[i] == 0 ){
cnt++;
x /= prime[i];
}
if( cnt ){
if( first ){
printf("%d %d",prime[i], cnt);
first = false;
}
else
printf(" %d %d",prime[i], cnt);
}
}
printf("\n");
}
int main(){
num = getPri();
int p, e, sum;
while(true){
sum = 1;
while(true){
scanf("%d",&p);
if(p == 0)
return 0;
scanf("%d",&e);
sum *= (int)pow((double)p,e);
if(getchar() == '\n')
break;
}
//printf("sum:%d",sum);
solve(sum - 1);
}
return 0;
}
转载于:https://www.cnblogs.com/lxf90/archive/2011/04/12/2014116.html
POJ 1365 Prime Land相关推荐
- (数学)POJ - 1365 Prime Land
原题链接:http://poj.org/problem?id=1365 题意: 定义:任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3.... ...
- UVA516 POJ1365 LA5533 ZOJ1261 Prime Land【欧拉筛法】
Everybody in the Prime Land is using a prime base number system. In this system, each positive integ ...
- POJ 3126 - Prime Path + Python(BFS)
()原题链接: # 原题:POJ 3126 - Prime Path | 眈眈探求 # 解题思路:https://blog.csdn.net/LYHVOYAGE/article/details/182 ...
- Poj 1811 Prime Test 素数测试 Miller-Rabin 与 整数的因子分解 Pollard rho
随机化算法,想尝试自己写一下,最后还是变成了抄代码... 代码参考了:POJ 1811 Prime Test(大素数判断和素因子分解) - kuangbin - 博客园 学习链接: Miller-Ra ...
- POJ - 3126 - Prime Path(BFS)
Prime Path POJ - 3126 题意: 给出两个四位素数 a , b.然后从a开始,每次可以改变四位中的一位数字,变成 c,c 可以接着变,直到变成b为止.要求 c 必须是素数.求变换次数 ...
- POJ 1811 Prime Test (Rabin-Miller强伪素数测试 和Pollard-rho 因数分解)
题目链接 Description Given a big integer number, you are required to find out whether it's a prime numbe ...
- poj 2395 prime的递归实现
题目链接:http://poj.org/problem?id=2395 求最小水桶的大小,每到达一个农村就能把水桶补满. 可见是用生成最小树,求最大边. 关于prime个人感觉用递归实现会少一个for ...
- POJ 3518 Prime Gap(素数题)
[题意简述]:输入一个数,假设这个数是素数就输出0,假设不是素数就输出离它近期的两个素数的差值,叫做Prime Gap. [分析]:这题过得非常险.由于我是打的素数表. 由于最大的素数是1299709 ...
- POJ 3126 Prime Path(BFS 数字处理)
意甲冠军 给你两个4位质数a, b 每次你可以改变a个位数,但仍然需要素数的变化 乞讨a有多少次的能力,至少修改成b 基础的bfs 注意数的处理即可了 出队一个数 然后入队全部能够由这个素 ...
最新文章
- 基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法
- 数字加字符串用,隔开
- Java系统变量之System.getenv()和System.getProperty()
- JavaScript对象的创建总结
- C++ primer 第8章 IO库
- 研究生图像处理该怎的自学_2020研究生入学资格,中级经济师资格-小嗨视频课堂...
- Golang sort 排序
- 人工智能学习该读哪些书籍?
- 什么样的男人才是最牛的男人
- .NET多线程编程(14)——用C#实现蜘蛛/爬虫程序的多线程控制
- QEMU,KVM及QEMU-KVM介绍
- c语言语法分析常见问题,C语言语法提要与常见错误分析.doc
- 离线式echarts模拟百度迁徙的实现
- 网络上复制网页文字的方法
- 3d显卡2003测试软件,3DMark 2003
- android十进制转十六进制算法,十进制转十六进制计算器
- H3CNE、H3CSE考试总结
- 二十二.基于国民MCU 的COMP模块的比较案例
- Mysql8.0.17压缩包安装——超详细简单教程
- 问题:EO-1 hyperion影像做 MNF 时报错问题解决