【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++实现)
高精度加法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式加法计算 步骤 以下有顺序之分 数组清零 输入 获取长度 逆置 字符型数字转成对应的整型数字 计算并输出 ...
随机推荐
- Linux 网络 I/O 模型简介(图文)
1.介绍 Linux 的内核将所有外部设备都看做一个文件来操作(一切皆文件),对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd,文件描述符).而对一个sock ...
- 263. Ugly Number(判断是否是丑数 剑指offer34)
Write a program to check whether a given number is an ugly number. Ugly numbers are positive numbers ...
- Eclipse+Spark搭建源码分析环境问题分析
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- C++基础---结构体(struct)
转自:http://blog.csdn.net/cainv89/article/details/48447225 1. 结构体(struct) 1.1 结构体的概念 结构体(struct):是由一系列 ...
- 20145302张薇《Java程序设计》实验一报告
20145302 <Java程序设计>实验一:Java开发环境的熟悉 实验内容 使用dos命令行编译.运行简单的Java程序: 使用IDEA编辑.编译.运行.调试Java程序. 1.命令行 ...
- Python3.6 安装、后续终端pip 安装模块命令
1. 下载安装包 https://www.python.org/ftp/python/3.6.4/python-3.6.4-amd64.exe 2. 安装python3.6 增加环境变量(打钩.红框很 ...
- CSS 属性的推荐书写顺序
- Hive表的修改Alter
1.查看创建表的信息 [show create table] hive> show create table student; OK createtab_stmt CREATE TABLE `s ...
- 【前端】jQuery实现锚点向下平滑滚动特效
jQuery实现锚点向下平滑滚动特效 实现效果: 实现原理: 使用jQuery animate()方法实现页面平滑滚动特效 $('html, body').animate({scrollTop: $( ...
- webform button
https://www.codeproject.com/Questions/412553/differences-between-onClick-and-onClientClick OnClick w ...