博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【素数筛】分解质因数
阅读量:6902 次
发布时间:2019-06-27

本文共 1354 字,大约阅读时间需要 4 分钟。

这**都是些什么奇奇怪怪的oj......

做题要用到分解质因数搜个板子做一做

大体思想:先把数据范围内的素数筛出来(get_list() )

然后代码:

1 #include
2 #include
3 using namespace std; 4 const int sz = 10010; 5 int a, b, cnt = 0; 6 int pri[sz]; 7 bool pd[sz]; 8 void get_list() { 9 pd[1] = pd[0] = 1;10 for(int i = 2; i <= b; i++) {11 if(!pd[i]) pri[++cnt] = i;12 for(int j = 1; j <= cnt && pri[j] * i <= b; j++) {13 pd[i * pri[j]] = 1;14 if(i % pri[j] == 0) break;15 }16 }17 }18 void work(int x) {19 int flag = 0, mid = x;20 for(int i = 1; i <= cnt; i++) {21 if(pri[i]<=mid && mid%pri[i]==0) {22 if(!flag) {23 printf("%d", pri[i]);24 flag = 1;25 mid /= pri[i]; 26 i--;//我发现我写的平方数, 如4, 9, 25此类只能输出单个质因数, 故 -- , 再算一次是不是还能被整除27 if(mid == 1) break;28 }29 else {30 printf("*%d", pri[i]);31 mid /= pri[i];32 i--; 33 if(mid == 1) break;34 }35 }36 }37 }38 int main() {39 scanf("%d%d", &a, &b);40 get_list();41 for(int i = a; i <= b; i++) {42 printf("%d=", i);43 work(i);44 printf("\n");45 }46 return 0;47 }

转载于:https://www.cnblogs.com/Hwjia/p/9878934.html

你可能感兴趣的文章
安全防护重在数据 人才选拔重在心力、脑力、体力
查看>>
SD-WAN提供安全的云服务接入
查看>>
苹果系统被曝漏洞, 大麦网再遭撞库攻击 | 宅客周刊
查看>>
最让程序员感到崩溃的10种编程语言
查看>>
对于互联网来说 “+”什么才重要
查看>>
任何数据都可压缩成1‰
查看>>
解密IFTTT的数据架构
查看>>
一个白牌厂商视角:极简交换机NOS演进史
查看>>
又一种入侵物理隔离设备的方法 利用KVM
查看>>
运维窍门:四种方法加快您的专用服务器
查看>>
史上比较用心的纯代码实现AutoLayout
查看>>
Windows 10 仍然可以通过辅助技术用户的形式免费升级
查看>>
为什么Linux安全 基于它的安卓不安全呢?
查看>>
DHS推出物联网安全策略原则
查看>>
《Hadoop实战第2版》——2.5节日志分析及几个小技巧
查看>>
Selenium RC 环境搭建(eclipse)
查看>>
美国高通公司携手贵州 研发数据中心服务器芯片
查看>>
为什么数据分析师是2017年的重大人才缺口?
查看>>
印度光伏市场潜力巨大 正信光电拟积极扩大市场占有率
查看>>
步步学LINQ to SQL:为实体类添加关系
查看>>