求最小公倍数 初等数
来源:互联网 发布:数据库设计案例分析 编辑:程序博客网 时间:2024/06/16 09:16
杭电上diy上一道很有意思的题
描述:
在学习完各类算法之后,yuna决定开始学习数论了。yuna神当然从最简单的最小公倍数学起喽~~~~~
定义 为1,2,…,n的最小公倍数,例如,B1 = 1,B2 = 2,B3 = 6,B4 = 12,B5 = 60,……。
yuna想知道对于给出的任意整数n,Bn是否等于Bn-1。yuna当然是知道答案的喽,但是她想考考rexdf,这次rexdf囧了,请帮帮他吧!
定义 为1,2,…,n的最小公倍数,例如,B1 = 1,B2 = 2,B3 = 6,B4 = 12,B5 = 60,……。
yuna想知道对于给出的任意整数n,Bn是否等于Bn-1。yuna当然是知道答案的喽,但是她想考考rexdf,这次rexdf囧了,请帮帮他吧!
Input
本题有多组测试数据,输入的第一行是一个整数T代表着测试数据的数量,接下来是T组测试数据。
对于每组测试数据:包含一个整数n (2 ≤ n ≤ 1016)。
对于每组测试数据:包含一个整数n (2 ≤ n ≤ 1016)。
Output
对于每组测试数据:
第1行 如果Bn等于Bn-1则输出YES否则输出NO。
第1行 如果Bn等于Bn-1则输出YES否则输出NO。
Sample Input
1 6
Sample Output
YES
Author
Source
developing schools contest 5
算法 :这样考虑:例如 10 那么他前面有9个数,B9的最小公倍数能被2和5整除 那么他一定能被10整除,所以B9和B10是一样的。
但是按照此方法要注意 的是16 前面有15个数,分解成2,8 4,4 两个相同的4是不成立的,应为8是2*2*2 包含了2 所以 2和8也是不成立的,所以前16和前15的最小公倍数不同。
post code:
#include<iostream>#include<stdio.h>#include<math.h>using namespace std;int ji; __int64 num;int judge() //判断质数{ int i; ji=(int)sqrt((double)num); for(i=2;i<=ji+1;i++) { if(num%i==0)break; } if(i==ji+2)return 1; else return 0;}int main(){ int n,flag,i; cin>>n; while(n--) { scanf("%I64d",&num); flag=judge(); //判断是否是质数 是质数 则不相同 if(flag==1){cout<<"NO"<<endl;continue;} else{ for(i=2;i<=2*ji;i++) { if(num%i==0&&i<(num/i)&&(num/i)%i!=0) //若不是质数 被两个数整除 且两个数不等,一个数不是另一个数的约数 成立 {printf("YES\n");flag=1;break;} } if(flag==0)printf("NO\n"); //否则不成立 } } return 0;}
- 求最小公倍数 初等数
- 求两个数最小公倍数
- 求一个数的最小公倍数
- 求两个数的最小公倍数
- 求两个数的最小公倍数
- 求n数的最小公倍数
- Java 求两个数最小公倍数
- 求两个数的最小公倍数
- 求两个数的最小公倍数
- 求三个数的最小公倍数
- 求两个数的最小公倍数
- 求两个数的最小公倍数
- 求三个数的最小公倍数
- 求两个数的最小公倍数
- 组合数+高效求最小公倍数
- 求三个数的最小公倍数
- 求两个数的最大公约数和最小公倍数
- 如何求两个数的最大公约数,最小公倍数
- 裸奔程序之外部中断检测按键
- 不同浏览器URL编码方式
- http协议简要
- poj 1659 Frogs' Neighborhood
- Makefile变量
- 求最小公倍数 初等数
- js数组操作大全(转)
- 判断一串字符中有多少个汉字
- POJ-2728-Desert King
- 进程和线程的区别
- SAP HANA SQL Error Codes
- IE关于js new Date() 出现NaN 的分析
- 二叉树的几种简单算法
- Windows7 update 失败的简单处理