【lightoj-1024】Eid (高精度)
【题意】
给定n个数,求这n个数的最小公倍数。
【题解】
最小公倍数当然不能按常规方法来求,因为最大的数将近是10000^1000级别的。然鹅最小公倍数怎么搞呢?
这里发现了一个规律:
4
5 6 30 60
5 : 5 //说明最小公倍数的因子中一定有一个5
6 : 2*3 //说明最小公倍数的因子中一定有一个2和一个3;
30 : 2*3*5 //说明最小公倍数的因子中一定有一个2和一个3和一个5;
60 : 2^2*3*5 //说明最小公倍数的因子中一定有2个2和一个3和一个5;
所以我们可以忽略那些个数比较少的, 找到说明结果中一定含有 2个2 1个3 1个5;
最后要用到高精度乘法。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int a[], b[];
void Mul(int b[], LL n)
{
int i;
for(i = ; i <= b[]; i++) b[i] *= n;
for(i = ; i <= b[]; i++) b[i+] += b[i] / , b[i] %= ;
while(b[i]) b[i+] += b[i] / , b[i] %= , i++, b[]++;
}
LL q_pow(int x, int y)
{
LL ans = ;
while(y)
{
if(y&) ans *= x;
x *= x;
y >>= ;
}
return ans;
}
int main()
{
int t, n, i, cas = , m;
cin>>t;
while(t--)
{
scanf("%d", &n);
memset(a, , sizeof(a));
int max1 = ;
while(n--)
{
scanf("%d", &m);
max1 = max(max1, m);
for(i = ; i <= m; i++)
{
int tep = ;
while(m % i == )
tep++, m /= i;
a[i] = max(a[i], tep);
}
}
memset(b, , sizeof b);
b[] = , b[] = ;
for(i = ; i <= max1; i++)
{
if(a[i] != )
Mul(b, q_pow(i, a[i]));
}
printf("Case %d: ", ++cas);
for(i = b[]; i >= ; i--)
printf("%d", b[i]);
cout<<endl;
}
return ;
}
【lightoj-1024】Eid (高精度)的更多相关文章
- LightOj 1024 - Eid (求n个数的最小公约数+高精度)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1024 题意:给你n(2<=n<=1000)个数, 然后求n个数的最小公倍数 ...
- LightOJ 1024 Eid(高精度乘法+求n个数最小公约数)
题目链接:https://vjudge.net/contest/28079#problem/T 题目大意:给你n个数求这些数的最小公倍数(约数). 解题思路:还太菜了,看了别人的题解才会写,转自这里, ...
- lightoj 1024 (高精度乘单精度)
题意:给你一些数,求它们的最小公倍数,结果可能会很大. 统计出每个素因子出现的最大次数,把他们相乘即可,需要高精度. #include<cmath> #include<cstdio& ...
- Lightoj 1024 - Eid
求n个数的最小公倍数. import java.math.*; import java.io.*; import java.util.*; import java.text.*; public cla ...
- (light oj 1024) Eid (最小公倍数)
题目链接: http://lightoj.com/volume_showproblem.php?problem=1024 In a strange planet there are n races. ...
- uva 465 - Overflow 高精度还是浮点数?
uva 465 - Overflow Overflow Write a program that reads an expression consisting of two non-negativ ...
- 学习PHP中的高精度计时器HRTime扩展
不知道大家还记得在学校的时候体育测试时老师带的秒表吗?当枪声想起时,我们开始跑步,这时秒表启动,当我们跑过终点后,老师会按下按扭记录我们的成绩,这就是一个典型的定时器的应用.今天我们要学习的内容其实就 ...
- 高精度减法(C++实现)
高精度减法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式减法计算 注:在本文中,我们默认输入的第一个数为被减数,且被减数大于减数 原理基本上与高精度加法相同,仅 ...
- 高精度加法(C++实现)
高精度加法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式加法计算 步骤 以下有顺序之分 数组清零 输入 获取长度 逆置 字符型数字转成对应的整型数字 计算并输出 ...
随机推荐
- Spring-1-I 233 Matrix(HDU 5015)解题报告及测试数据
233 Matrix Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Descript ...
- cocos2dx 3.x 触摸事件
单点触摸: bool onTouchBegan(cocos2d::Touch *pTouch, cocos2d::Event *pEvent); void onTouchMoved(cocos2d:: ...
- try cath
用try cath 的缺点? 举例: 一个程序 有3层.基类层,中间层,和 使用层. 在 基类层 使用 try cath 如果发生 异常,将会 一层一层 冒泡到 使用层 并弹出报错信息:效率 大大降 ...
- GRUB2 分析 (三)
接上一篇 从地址0x8200开始的是lzma_decompress.img.这是由startup_raw.S编译生成的.这个文件稍微复杂点.首先一开始就是个跳转指令: ljmp $0, $ABS(LO ...
- Visual Studio 2010生成解决方案时,导致C盘空间越来越小
为了从根本上解决问题,还是去掉智能跟踪选项吧,方案: VS2010-->工具-->选项-->IntelliTrance-->将“启用IntelliTrace”勾选去掉--> ...
- cogs 539. 牛棚的灯
★★☆ 输入文件:lights.in 输出文件:lights.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 贝希和她的闺密们在她们的牛棚中玩游戏.但是天不从 ...
- 聊一聊HTML <!--…-->标签
定义 注释标签用于在html源代码中插入注释.注释不会在浏览器上显示. 用法 根据定义的基本用法,代码如下 <!-- 这是一段注释,我不会显示在页面上 --> 浏览器的支持情况 所有浏览器 ...
- 在linux上使用tomcat服务器图片验证码不显示问题
背景描述:在liunx系统上,使用tomcat中间件,访问web项目,登录页面的图片验证码显示不出来,但是在window系统上可以正常显示 解决方案:设置一下这个文件tomcat/bin/catali ...
- kafka log文件和offset原理
log与offset 日志存储路径根据配置log.dirs ,日志文件通过 topic-partitionId分目录,再通过log.roll.hours 和log.segment.bytes来分文件, ...
- .net 修改AD域中的密码
1.通过vs 2013 新建一个web站点(不是空项目),这个会带一下模板, 2.然后新建一个页面UpdatePassWord.aspx aspx页面内容: <%@ Page Title=&qu ...