UVA, 516 Prime Land
题意:给一个数的指数形式,例:5 1 2 1 num=5^1*2^1 求num-1的质因数分解结果
思路:素数筛法,质因数分解
代码如下:
1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cstdlib> 6 #include <cmath> 7 8 using namespace std; 9 10 const int N=1000000; 11 int cnt,tot; 12 long num; 13 long prime[N]; 14 bool isprime[N]; 15 string ss; 16 int a[N],b[N]; 17 18 void getprime(); 19 void showprime(); 20 void getnum(); 21 bool datecin(); 22 void datecal(long); 23 void showres(); 24 25 26 void getprime() 27 { 28 memset(isprime,1,sizeof(isprime)); 29 isprime[0]=isprime[1]=cnt=0; 30 for(int i=2;i<N;i++) 31 { 32 if(isprime[i]) 33 prime[cnt++]=i; 34 for(int j=0;j<cnt&&i*prime[j]<N;j++) 35 { 36 isprime[i*prime[j]]=0; 37 if(!(i%prime[j]))break; 38 } 39 } 40 } 41 42 void showprime() 43 { 44 cout<<cnt<<endl; 45 for(int i=0;i<cnt;i++) 46 cout<<prime[i]<<' '; 47 cout<<endl; 48 } 49 50 bool datecin() 51 { 52 getline(cin,ss); 53 if((ss[0]=='0')) 54 { 55 return false; 56 } 57 getnum(); 58 return true; 59 } 60 61 void getnum()//得到num 62 { 63 int l=ss.length();//cout<<l<<endl; 64 int k=1; 65 double a,b,sum=1; 66 for(int i=0;i<l;i++) 67 { 68 if(i==0) 69 { 70 a=atoi(ss.c_str()); 71 } 72 else if(ss[i]==' ') 73 { 74 i++,k++; 75 string s=ss.substr(i); 76 int n=atoi(s.c_str()); 77 if(k==1) 78 { 79 a=n; 80 } 81 else if(k==2) 82 { 83 b=n; 84 sum*=pow(a,b); 85 k=0; 86 num=(long)sum; 87 //cout<<num<<endl; 88 } 89 //cout<<n<<endl; 90 } 91 } 92 num--; 93 //cout<<num<<endl; 94 } 95 96 void datecal(long num) 97 { 98 double temp=sqrt(num)+1; 99 tot=0; 100 //cout<<'?'<<endl; 101 for(int i=0;temp>prime[i];i++) 102 { 103 if(num%prime[i]==0) 104 { 105 a[++tot]=prime[i]; 106 b[tot]=0; 107 while(num%prime[i]==0) 108 { 109 ++b[tot]; 110 num/=prime[i]; 111 } 112 } 113 } 114 if(num!=1) 115 { 116 a[++tot]=num; 117 b[tot]=1; 118 } 119 } 120 121 void showres() 122 { 123 for(int i=tot;i>=1;i--) 124 { 125 printf("%d %d",a[i],b[i]); 126 if(i!=1) 127 printf(" "); 128 } 129 printf("\n"); 130 } 131 132 int main() 133 { 134 getprime(); 135 //showprime(); 136 while(datecin()) 137 { 138 datecal(num); 139 showres(); 140 } 141 return 0; 142 }
关于输入,因为没有告诉你有多少个数字,用字符串输入转换比较好。
转载于:https://www.cnblogs.com/byzsxloli/p/5438752.html
UVA, 516 Prime Land相关推荐
- UVA 516 Prime Land
UVA516 感觉自己的思维不够灵动变通...特别是写了最近的几道题目之后...感觉得做出加倍努力不然真的就学不进去了..我太难了. #include <iostream> #includ ...
- UVA516 POJ1365 LA5533 ZOJ1261 Prime Land【欧拉筛法】
Everybody in the Prime Land is using a prime base number system. In this system, each positive integ ...
- UVA - 524 Prime Ring Problem
题目链接: UVA - 524 Prime Ring Problem Description(素数环) A ring is composed of n (even number) circles as ...
- POJ 1365 Prime Land
题意不好理解啊.. 以下摘自discuss 已知任意一个大于1的数可以表示成一些素数的乘积,即x=p1^e1*p2^e2-- pn^en (pi 为素数,ei 为对应素数的个数),现给你x的表示,要你 ...
- (数学)POJ - 1365 Prime Land
原题链接:http://poj.org/problem?id=1365 题意: 定义:任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3.... ...
- uva 10140——Prime Distance
题意:题目出的很简单,给定一个数据范围(好吧,又是给定一个范围),然后问你在这个给定的范围内,哪两个相邻素数挨的最近,哪两个最远. 思路:这破题数据量很大,如果直接打表,铁定T,我蛋疼地打过两边了,T ...
- uva 524(Prime Ring Problem UVA - 524 )
dfs练习题,我素数打表的时候j=i了,一直没发现实际上是j=i*i,以后可记住了.还有最后一行不能有空格...昏迷了半天 我的代码(紫书上的算法) #include <bits/stdc++. ...
- UVA 12101 Prime Path (素数筛+BFS)
题意:给一个四位数的素数,求通过几步变换(一次只能换一个位置的数,且变换过程中只能出现素数)变为目标四位数 分析:素数筛法+BFS,BFS时更换一个数字如果符合条件就加入队列 代码: #include ...
- uva 10200 Prime Time
水题,不过有坑,在输出答案的时候加个1e-5就过了,不加就是wa #include <iostream> #include <cstring> #include <alg ...
最新文章
- XCTF联赛“出海计划”开启,八月新加坡站国际赛蓄势待发
- python画误差棒/带
- 机器人学的几何基础pdf
- hibernate版本_基于jsp+mysql+Spring+hibernate+Struts 2的SSH在线蛋糕销售网站平台管理系统...
- python字符串转成数组_python将字符串转换成数组的方法
- 【Mac版】小i译读安装操作
- 最新免费可使用在线音乐网站+多解析源码
- VBA函数传递参数方式
- 高通android刷机工具,高通android7.0刷机工具使用介绍
- linux环境下安装jmeter
- VR渲染和CR渲染同样文件的真实对比(附CR渲染参数)
- 'sa'登录失败解决方案大全
- 如何将EXCEL中的多个单元格内容合并在一个单元格内
- 计算机控制技术结束语,电子商务在线 - 计算机控制技术教学改革探索与实践
- 神奇的泡泡java游戏,抖音挤泡泡游戏叫什么名字 抖音上很火的减压游戏介绍
- len是python的内置函数吗_len(x) 击败 x.len(),从内置函数看 Python 的设计思想(内有公号宣传,不喜勿进)...
- Java项目:精美物流管理系统(java+SpringBoot+Vue+maven+Mysql)
- MATLAB直接输出棋盘格标定板
- canvas绘制刮刮卡,超过一定面积显示全图
- 微信小程序获取手机号隐私权限问题处理方案
热门文章
- 无纸化车间是怎样实现的,能给企业生产带来什么?
- 戴尔服务器r330系统安装,Dell PowerEdge R330
- iPhone4S大跌4000港元成跌价王 水货商谨慎进货
- android 图片气泡,关于实现微信聊天气泡里显示图片解决方案
- 生活小妙方记录:治疗缠腰蛇
- 利用python生成微信h5_Python + Appium 微信公众号 H5 页面自动化测试
- 华为鸿蒙系统穿戴app,华为应该如何盘活鸿蒙系统?
- canvas画笔自定义笔触
- iOS 图片裁剪(用户头像裁剪)
- 三十八、C++ 信号捕获