SRM 599 D1L1:BigFatInteger,math
2014-02-17 00:41
323 查看
题目:http://community.topcoder.com/stat?c=problem_statement&pm=12867&rd=15711
代码:
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <cstring>
#include <ctime>
#include <climits>
using namespace std;
#define CHECKTIME() printf("%.2lf\n", (double)clock() / CLOCKS_PER_SEC)
/*************** Program Begin **********************/
class BigFatInteger {
public:
map < long long, long long > extractPrimeFactors(int x)
{
map <long long, long long> ap;
for (int p = 2; p * p <= x; p++) {
int ex = 0;
bool flag = false;
while (x % p == 0) {
flag = true;
++ex;
x /= p;
}
if (flag) {
ap[p] = ex;
}
}
if (x != 1) {
ap[x] = 1;
}
return ap;
}
int minOperations(int A, int B) {
int res = 0;
auto ap = extractPrimeFactors(A);
res = ap.size();
int mxex = 0;
for (auto it = ap.begin(); it != ap.end(); it++) {
if (mxex < (*it).second) {
mxex = (*it).second;
}
}
for (int i = 1; i < mxex * B; i *= 2) {
++res;
}
return res;
}
};
/************** Program End ************************/
代码:
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <bitset>
#include <string>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <cstring>
#include <ctime>
#include <climits>
using namespace std;
#define CHECKTIME() printf("%.2lf\n", (double)clock() / CLOCKS_PER_SEC)
/*************** Program Begin **********************/
class BigFatInteger {
public:
map < long long, long long > extractPrimeFactors(int x)
{
map <long long, long long> ap;
for (int p = 2; p * p <= x; p++) {
int ex = 0;
bool flag = false;
while (x % p == 0) {
flag = true;
++ex;
x /= p;
}
if (flag) {
ap[p] = ex;
}
}
if (x != 1) {
ap[x] = 1;
}
return ap;
}
int minOperations(int A, int B) {
int res = 0;
auto ap = extractPrimeFactors(A);
res = ap.size();
int mxex = 0;
for (auto it = ap.begin(); it != ap.end(); it++) {
if (mxex < (*it).second) {
mxex = (*it).second;
}
}
for (int i = 1; i < mxex * B; i *= 2) {
++res;
}
return res;
}
};
/************** Program End ************************/
相关文章推荐
- hibernate:java.math.BigInteger cannot be cast to java.lang.Long
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Integer
- 常见对象_Regex、Math、Random、System、BigInteger、BigDecimal、Date/DateFormat、Calendar总结
- 正则表达式,Math,Random,system,BigInteger,BigDecimal,Data/DataFormat,Calender
- SRM 599 D2L2:BigFatInteger2, math
- Java基础-14总结正则表达式,Pattern,Mactcher,Math,BigInteger,BigDeximal,System等
- java.math.BigInteger cannot be cast to java.lang.Long
- java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Integer
- 【java基础】大数据的处理:java.math.Number/BigInteger/BigDecimal
- Java基础-14总结正则表达式,Pattern,Mactcher,Math,BigInteger,BigDeximal,System等
- java.math.BigInteger cannot be cast to java.lang.Long
- Java中正则表达式和常用的Math、Random、System、BigInteger、BigDecimal、Date/DateFormat、Calendar类的使用
- java基础 基本包装类 System Math Array BigInteger BigDecimal
- 【问题解决:连接异常】 java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
- java.math.BigInteger使用心得总结(转)
- 简单常用类:Math 、Random、System、Integer、Character、BigInteger、BigDecimal等
- 类:BigDecimal,BigInteger,Math,System
- 【java.math.BigInteger】【转】常见问题
- java.math.BigInteger使用心得总结
- java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Integer