相亲数&完全数最简单算法
2010-08-23 10:16
183 查看
今天看到博客园一位仁兄的相亲数,整体感觉不错。
原文出处:http://www.cnblogs.com/devil0153/archive/2010/08/22/AmicablePair-And-PerfectNumber.html
版权声明:版权归作者WeiSteven所有,转载请注明!
但有些算法感觉有些大材小用,随手写了一个最简单的相亲数的判断程序:
运行效果不是想象中的差,没进行任何的优化:
其中只是避开了分解质因数,求解复杂运算
代码 1 #include <stdio.h>
2 #include <time.h>
3 /*----------------
4 计算相亲数的快速算法
5 最直接的代码用时:3088ms
6 平台:T2330 1.6GHZ
7 -----------------*/
8 #define MAX_TEST 5000000
9 long nTable[MAX_TEST];//素数表
char nFlag[MAX_TEST];
//构造未标记用于降低内存使用
void printConsole()
{
for(long i=2;i<MAX_TEST;i++)
{
if(nFlag[i]==0)
{
if(nTable[i]<MAX_TEST&&(nTable[nTable[i]+1]+1==i))
printf("%ld\t%ld\n",i,nTable[i]+1);
nFlag[nTable[i]+1]=1;
}
}
}
int main()
{
long j=0;
double startTime,endTime;
startTime=(double)clock();
for(long i=2;i<MAX_TEST;i++)
{
j=(i<<1);
while(j<MAX_TEST)
{
nTable[j]+=i;
j+=i;
}
}
endTime=(double)clock();
printf("Total Run Time:%f\n",endTime-startTime);
//printf("数值:%ld\n",nTable[220]);
printConsole();
return 1;
}
原文出处:http://www.cnblogs.com/devil0153/archive/2010/08/22/AmicablePair-And-PerfectNumber.html
版权声明:版权归作者WeiSteven所有,转载请注明!
但有些算法感觉有些大材小用,随手写了一个最简单的相亲数的判断程序:
运行效果不是想象中的差,没进行任何的优化:
其中只是避开了分解质因数,求解复杂运算
代码 1 #include <stdio.h>
2 #include <time.h>
3 /*----------------
4 计算相亲数的快速算法
5 最直接的代码用时:3088ms
6 平台:T2330 1.6GHZ
7 -----------------*/
8 #define MAX_TEST 5000000
9 long nTable[MAX_TEST];//素数表
char nFlag[MAX_TEST];
//构造未标记用于降低内存使用
void printConsole()
{
for(long i=2;i<MAX_TEST;i++)
{
if(nFlag[i]==0)
{
if(nTable[i]<MAX_TEST&&(nTable[nTable[i]+1]+1==i))
printf("%ld\t%ld\n",i,nTable[i]+1);
nFlag[nTable[i]+1]=1;
}
}
}
int main()
{
long j=0;
double startTime,endTime;
startTime=(double)clock();
for(long i=2;i<MAX_TEST;i++)
{
j=(i<<1);
while(j<MAX_TEST)
{
nTable[j]+=i;
j+=i;
}
}
endTime=(double)clock();
printf("Total Run Time:%f\n",endTime-startTime);
//printf("数值:%ld\n",nTable[220]);
printConsole();
return 1;
}
相关文章推荐
- 相亲数&amp;完全数最简单算法
- 【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然最讨厌了!【1.0%达成!】
- Python实现一些简单的算法(1)—寻找完全数
- 【数据结构&&算法系列】快速排序简单介绍及实现
- 算法->完全背包问题 UVa 674 Coin Change
- 算法设计和数据结构学习_5(BST&AVL&红黑树简单介绍)
- 【数据结构&&算法系列】归并排序简单介绍及python代码
- 算法练习:水仙花数、完全数、相亲数
- [面试算法] 01背包 & 完全背包
- 【数据结构&&算法系列】插入排序简单介绍及python代码
- 小白算法练习 简单背包专题003 完全背包 hdu lanqiao 包子凑数 dp
- 【数据结构&&算法系列】堆排序简单介绍及其实现
- 递归算法思想&&一些简单算法实现
- 【数据结构&&算法系列】并查集简单介绍
- 算法练习:水仙花数、完全数、相亲数
- LOJ2254 && bzoj5016 [Snoi2017]一个简单的询问 莫队算法
- 算法练习:水仙花数、完全数、相亲数
- 算法练习:水仙花数、完全数、相亲数
- 算法设计和数据结构学习_5(BST&AVL&红黑树简单介绍)
- 有关数论的算法&简单代码