西南交大公开赛 Not So Flat After All(合数分解)
来源:互联网 发布:闲鱼淘宝介入后公平吗 编辑:程序博客网 时间:2024/05/07 01:32
给出2个数,找出素因子分解的形式,给出2数素因子集合并集的基数,以及对应指数的绝对值之和
#include <cstdio>#include <cstring>#define abs(a) (a)>(0)?(a):(-(a))const int maxn=1000000;const int PRIMERANGE = 1000000;int prime[PRIMERANGE + 1];int getPrime(){ memset (prime, 0, sizeof (int) * (PRIMERANGE + 1)); for (int i = 2; i <= PRIMERANGE; i++) { if (!prime[i]) prime[++prime[0]] = i; for (int j = 1; j <= prime[0] && prime[j] <= PRIMERANGE / i; j++) { prime[prime[j]*i] = 1; if (i % prime[j] == 0) break; } } return prime[0];}int factor[100][3], facCnt;int factor2[100][3];//only for this int getFactors(int x){ facCnt = 0; memset(factor,0,sizeof(factor)); int tmp = x; for(int i = 1; prime[i] <= tmp / prime[i]; i++) { factor[facCnt][1] = 1, factor[facCnt][2] = 0; if(tmp % prime[i] == 0) factor[facCnt][0] = prime[i]; while(tmp % prime[i] == 0) factor[facCnt][2]++, factor[facCnt][1] *= prime[i], tmp /= prime[i]; if(factor[facCnt][1] > 1) facCnt++; } if(tmp != 1) factor[facCnt][0] = tmp, factor[facCnt][1] = tmp, factor[facCnt++][2] = 1; return facCnt;}int ans,cntans;int I=0;int main (){ getPrime(); int n,m; while (scanf("%d%d",&n,&m),(n||m)) { int cntn=getFactors(n); memcpy(factor2,factor,sizeof(factor)); int cntm=getFactors(m); int pn=0,pm=0; ans=cntans=0; while (pn<cntn && pm<cntm) { if(factor2[pn][0]<factor[pm][0]){ans++;cntans+=factor2[pn][2]; pn++;} else if(factor[pm][0]<factor2[pn][0]){ans++;cntans+=factor[pm][2]; pm++;} else {ans++ ; cntans+=abs(factor[pm][2]-factor2[pn][2]);pn++; pm++;} } ans+=(cntn-pn+cntm-pm); while (pn<cntn) cntans+=factor2[pn++][2]; while (pm<cntm) cntans+=factor[pm++][2]; printf("%d. %d:%d\n",++I,ans,cntans); } return 0;}
- 西南交大公开赛 Not So Flat After All(合数分解)
- HDU 3353 Not So Flat After All(数论)
- POJ 3993 Not So Flat After All
- POJ 3993 Not So Flat After All
- POJ 3993 Not So Flat After All(质因数)
- POJ 3993 Not So Flat After All(质因数)
- poj3993Not So Flat After All(筛法素数+分解质因子)
- POJ 3993 Not So Flat After All (快速求质因子)
- 合数分解
- 美丽的西南交大(图)
- 交大机试(分解质因数)
- [模板]合数分解
- 合数分解 UVA
- 合数唯一分解定理
- 西南交大电气工程学院课件下载(对考研可能有帮助)
- 2010年09月28日网易笔试题(西南交大)
- 西南交大计算机组成实验C(VHDL)-实验五 CPU寄存器组设计
- 西南交大大学生营养早餐优化食谱
- Android 电话拔号器的实现
- 关于java变量名的命名规范
- const void *a 与 void *const a 的区别
- C# 操作 AD
- 电子商务网站设计与选择
- 西南交大公开赛 Not So Flat After All(合数分解)
- 个人近况小结
- 读书
- JS杂项
- 让你的 Node.js 跑在 Windows 的 IIS 中
- Android 短信发送器的实现
- 负数的负号前置显示
- RCP 信号处理
- 最近的在做一个Arc Engine图元叠加关系处理工具