第二届c决赛-3-大整数
来源:互联网 发布:mamercache缓存php 编辑:程序博客网 时间:2024/05/22 01:40
3. 公倍数
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。
我们希望寻找到能除尽1至n的的每个数字的最小整数。
不要小看这个数字,它可能十分大,比如n=100, 则该数为:
69720375229712477164533808935312303556800
请编写程序,实现对用户输入的n (n<100)求出1~n的最小公倍数。
例如:
用户输入:
6
程序输出:
60
用户输入:
10
程序输出:
2520
程序:
#include <stdio.h> #include <string.h> #define N 105int n;int a[N][50];int b[N] = {0}; void multiple(){int i, j, k;memset(a, 0, sizeof(a));for (i = 3; i <= 100; i++){int temp; a[i][0] = 1;for(j = 2; j <= i; j++){int c = 0;for (k = 0; k < 50; k++){temp = a[i][k] * b[j] + c;a[i][k] = temp % 1000;c = temp / 1000;}}}}void printData(int n){int i, j, k;for (i = 49; i >= 0; i--){if (a[n][i])break;}printf("%d", a[n][i]);for (j = i - 1; j >= 0; j--)printf("%d", a[n][j]);}int main(int argc, char* argv[]){int i, j, k;for (i = 0; i < N; i++)b[i] = i;for (i = 2; i < N; i++){for (j = i + 1; j <= N; j++){if (b[j]%b[i] == 0)b[j] /= b[i];}}multiple();scanf("%d", &n);if(n == 1 || n ==2){printf("%d", n);}elseprintData(n);return 0;}
0 0
- 第二届c决赛-3-大整数
- 第二大整数
- 第二大整数
- 第二大整数
- 第二大整数 --- 蓝桥杯
- 蓝桥杯 第二大整数
- 第二大整数
- 第二大整数
- C++--------------------------------------获得整数数组第二大的数
- 算法提高 第二大整数
- 算法提高 第二大整数
- C 大整数相加
- 第二届CCCC天梯赛决赛总结
- 【我解C语言面试题系列】012 查找整数数组中第二大的数
- C语言面试题 4 (查找整数数组中第二大的数)
- 1501171404-蓝桥杯-算法提高 第二大整数
- 蓝桥杯算法提高 第二大整数
- 算法提高 ADV-100 第二大整数
- 欢迎使用CSDN-markdown编辑器
- AFNetwork 作用和用法详解 下载上传登录
- JAVA中toString方法的作用
- CPU,内存,硬盘,指令以及他们之间的关系
- BZOJ 3932任务查询系统
- 第二届c决赛-3-大整数
- C学习笔记之---八皇后算法
- 人性的弱点读书笔记
- 大数据工程师面试题(七)
- Mybatis使用过程中的一些总结
- 去掉源代码前面的行号
- 第四章 随机变量的数字特征
- 3G上网卡2_编程自动切换模式学习笔记
- Hive环境的安装部署