可参照辗转相除 1 #include 2 3 int main(void) 4 { 5 int x=260; 6 int y=104; 7 8 int temp; //临时变量 9 10 int index=0;11 while((x%2==0)&&(...
分类:
其他好文 时间:
2014-09-06 18:36:03
阅读次数:
145
1 #include 2 3 int main(void) 4 { 5 int x=252; 6 int y=105; 7 8 int temp; //临时保存变量 9 10 while(y!=0) //当y也就是余数为0的时候,x就是约数11 ...
分类:
其他好文 时间:
2014-09-06 18:30:53
阅读次数:
200
题目链接
题意:给你两个数G和L,输出两个正整数,最大公约数为G,最小公倍数为L,输出a最小的情况,如果不存在输出-1。
思路:当a最小时,a = G,所以只要L % G == 0,就表示存在。
代码:
#include
#include
#include
#include
using namespace std;
int g, l;
int main...
分类:
其他好文 时间:
2014-09-06 17:25:33
阅读次数:
288
注意题目中的一句话:If a number m has bigger evaluating value than all the numbers smaller than it。。。这让我重新想过反素数的定义,应该 是比n小的数的约数的个数都 小于 n。所以,应该取最小的一个值#include #i...
分类:
其他好文 时间:
2014-09-06 17:21:53
阅读次数:
158
了解反素数的定义:反素数是指[1,n]内,比n小的数的约数个数都比n的约数个数要少。注意n其实是最后一个。而在区间内,[a,b]是明显无法满足条件的。注意了最大才5000.所以,不妨使用枚举。#include #include #include using namespace std;const i...
分类:
其他好文 时间:
2014-09-06 17:16:03
阅读次数:
172
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 02000000000∴最多只用用到这么多不同的质因数。搜索即可。加两个剪枝:①从小到大枚举质因数,不要让 顺序不同的 算作不同的方案。②小的因数的指数必然大于大的因数的指数,∵约数...
分类:
其他好文 时间:
2014-09-06 16:04:33
阅读次数:
221
在讲解反素数之前,我们先来看反素数的概念。反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那么称为反素数。从反素数的定义中可以看出两个性质:(1)一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为的这个数尽量小(2)同样的...
分类:
其他好文 时间:
2014-09-06 16:02:03
阅读次数:
248
1 //Accepted 204K 16MS 2 //约数和 3 //n=p1^e1*p2^e2***pk^ek 4 //约数和为:(p1^0+p1^1+..+p1^e1)*(p2^0+p2^1+..+p2^e2)*..(pk^0+pk^1+..pk^ek) 5 //现考虑: S=p1...
分类:
其他好文 时间:
2014-08-31 11:51:21
阅读次数:
155
importjava.util.Scanner;
publicclassTest6{
//欧几里德辗转相除法
publicstaticintgcd(inta,intb){
intr;
while(b!=0){
r=a%b;
a=b;
b=r;
}
returna;
}
//最小公倍数的另一种解法
publicstaticintgcdtwo(inta,intb){
while(a!=b){
if(a>b){
a=a-b;
}else{
b=b-a;
}
}
re..
分类:
编程语言 时间:
2014-08-30 19:14:10
阅读次数:
231