lightoj 1024
来源:互联网 发布:sql中合计前几列的和 编辑:程序博客网 时间:2024/05/17 23:57
高精度乘法
代码如下:
#include <bits/stdc++.h>using namespace std;int b[50010], a[50010];int c[10010];void Print(int n){ memset(c, 0, sizeof(c)); int m = 1; c[0] = 1; for(int i = 0; i < n; i++) { int len = 0; for(int j = 0; j < m; j++) c[j] *= a[i];// printf("%d\n", c[0]); for(; c[len] || len < m; len++) c[len+1] += c[len]/10, c[len] %= 10; m = len; } for(int i = m-1; i >= 0; i--) printf("%d", c[i]); printf("\n"); return ;}int main (){// freopen("E:\\1.in", "r", stdin);// freopen("E:\\1.out", "w", stdout); int t, cnt = 1; scanf("%d", &t); while(t--) { memset(b, 0, sizeof(b)); int n, len = 0; scanf("%d", &n); for(int i = 0; i < n; i++) { int x; scanf("%d", &x); int k = sqrt(x); for(int i = 2; i <= k && i <= x; i++) { int sum = 0; while(x%i == 0) { x /= i; sum++; } b[i] = max(b[i], sum); } if(x != 1 && x < 50001) b[x] = max(b[x], 1); if(x > 50000) a[len++] = x; } for(int i = 2; i <= 50001; i++) if(b[i]) { a[len] = 1; while(b[i]--) { a[len] *= i; } len++; } printf("Case %d: ", cnt++); Print(len); } return 0;}
阅读全文
0 0
- lightoj 1024
- lightoj 1024
- LightOJ 1024 Eid
- lightoj 1024 Eid
- LightOJ 1024 Eid
- LightOJ 1024 Eid
- LightOj-1024-Eid
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- Zabbix ----界面语言切换
- jquery的ajax()之 beforeSend属性详解和XMLHttpRequest详解
- Machine Learning in action --CART--regTrees.py
- 最短路径(动态规划dp)
- 526_画出列表中用的连接线
- lightoj 1024
- 如何分分钟成为Java嵌入式开发人员
- MySQL/Oracle数据库优化总结(非常全面)
- python和java运算符
- Kali linux 2.0下安装了两个版本Python,Sublime编译Python,默
- 经典案例
- 如鹏网学习笔记(十二)HTML5
- Rxjs 操作符之 repeatWhen
- 527_画出曲线彩色进度条