博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1365 Prime Land【质因数分解】【素数】【水题】
阅读量:6914 次
发布时间:2019-06-27

本文共 2217 字,大约阅读时间需要 7 分钟。

题目链接:
题目大意:
告诉你一个数的质因数x的全部底数pi和幂ei。输出x-1的质因数的全部底数和幂
解题思路:
这道题不难。可是题意特别不好理解。对于我这样的英文渣的人。愣是一个小时没看明确

关于题意举例说明吧  

比如 509 1 59 1  

x = 509^1 * 59^1 = 30031

x-1 = 30030

则答案 13 1 11 1 7 1 5 1 3 1 2 1 就是 x-1 = 13^1 * 11^1 * 7^1 * 5^1 *3^1 *2^1 

= 30031   

那么直接按着题意暴力解决即可了。

。。

。。

AC代码:

#include
#include
#include
/*pow函数说明原型:extern float pow(float x, float y);使用方法:#include
功能:计算x的y次幂。说明:x应大于零,返回幂指数的结果。*/double p[110],e[110];int Prime[35000],E[35000];void IsPrime(){ Prime[0] = Prime[1] = 0; for(int i = 2; i <= 35000; i++) { Prime[i] = 1; } for(int i = 2; i <= 35000; i++) { for(int j = i+i; j <= 35000; j+=i) { Prime[j] = 0; } }}int main(){ int count,sign; IsPrime();// for(int i = 2; i <= 35000; i++)// if(Prime[i])// printf("%d ",i); while(1) { count = 0,sign = 0; memset(p,0,sizeof(p)); memset(e,0,sizeof(e)); memset(E,0,sizeof(E)); while(1) { scanf("%lf",&p[count]); if(p[count] == 0) { sign = 1; break; } scanf("%lf",&e[count]); count++; char c = getchar(); if(c=='\n') break; } if(sign == 1) break; double num = 1; for(int i = 0; i < count; i++) num *= pow(p[i],e[i]); int sum = (int)num - 1;// printf("%d\n",sum); int flag = 0,pos = 2; for(int i = 2; i <= 32767; i++) { if(sum == 1) break; if(Prime[i]) { while(sum % i == 0) { E[i]++; sum /= i; if(flag == 0) { flag = 1; pos = i; } } } } for(int i = 32767; i>= 2; i--) { if(E[i]!=0 && i!=pos) printf("%d %d ",i,E[i]); else if(E[i]!=0 && i==pos) { printf("%d %d\n",i,E[i]); break; } } } return 0;}

转载地址:http://szicl.baihongyu.com/

你可能感兴趣的文章
Shell编程练习
查看>>
Magento多语言设置——优化前台与后台实现方法
查看>>
如何修改遗失的MySQL的ROOT用户密码
查看>>
leetcode121买股票
查看>>
搭建dubbo+zookeeper+dubboadmin分布式服务框架(windows平台下)
查看>>
060——VUE中vue-router之路由嵌套在文章系统中的使用方法:
查看>>
004——VUE中的v-once的使用
查看>>
Python利用带权重随机数解决抽奖和游戏爆装备问题
查看>>
CentOS7.4安装Java8
查看>>
反射获取对象的属性值
查看>>
WPF Label或者其他控件(以Content显示内容的)单个下划线不显示的问题。
查看>>
实验二
查看>>
MySQL 从库down机
查看>>
Linux初学 - 安装及网络配置
查看>>
斐波拉契博弈
查看>>
NOI1995 石子合并 DP+平行四边形优化
查看>>
64位ubuntu编译32位程序
查看>>
进程和线程的区别是什么?
查看>>
JDBC批量删除某一用户下的触发器
查看>>
VMware workstation pro 15 安装Ubuntu(图文教程)
查看>>