最多约数问题
2015-11-11 14:11
190 查看
#include "stdio.h" #include "string.h" const int MAXP = 316; const int PCOUNT = 34; int prim[PCOUNT]; //存储素数 bool get[PCOUNT]; //素数筛法 void prims() { memset(prim, 0, sizeof(prim)); int i; for(i=0; i<=MAXP; i++) get[i] = true; int j; for(i=2; i<=MAXP; i++) if(get[i]) { j = i + i; while(j<=MAXP) { get[j] = false; //如果是i的倍数,就一定不是素数 j += i; } } int count = 0; for(i=2; i<=MAXP; i++) if(get[i]) prim[count++] = i; } //返回x中的约数个数 //x = p1^N1 * p2^N2 + ... + pK^NK //div(x) = (N1+1)*(N2+1)*...*(NK+1) int div(int x) { int count; int sum = 1; int i; for(i=0; i<=MAXP && prim[i]<=x; i++) { count = 1; if(x%prim[i]==0) { while(x%prim[i]==0) { count++; x /= prim[i]; } sum *= count; } } return sum; } int main() { prims(); int i; int low, high; printf("请输入两个正整数:\n"); scanf("%d", &low); scanf("%d", &high); int max = 0; int count = 0; for(i=low; i<=high; i++) { count = div(i); if(count>max) max = count; } printf("两个正整数之间约数个数最多的数中有%d个约数\n", max); return 0; }
相关文章推荐
- esri/dijit/andlysis/ExtractData:给定的extent提取数据
- 程序员应该坚决避免的十种编程坏毛病
- [17]AWK记录、字段、模式、跨平台移植及正则表达式
- Jquery弹出Alert,Confirm,Prompt对话窗
- 从各个数据集中整合2004-2010年的疟疾数据
- 为什么要从Web form过渡到MVC中
- BootStrap学习(7)_轮播图
- 数据链表+算法汇总一
- php中比较好用的函数
- 如何将liquibase部署到tomcat服务器上(使用postgresql数据库)
- 前端开发问题(JS部分)
- fragment replace 周期
- A+B in Hogwarts
- Android用loadClass获取系统隐藏类和隐藏服务的方法
- Ifnull,nullif,isnull 小结
- 在JAVA代码中控制文本的显示行数
- 触发器相互转换-20151109
- Python操作Redis之散列类型
- poj 3164 朱刘算法(最小树形图)
- Rails--自动清除开发日志