求质因子的模板
来源:互联网 发布:wamp数据库账号密码 编辑:程序博客网 时间:2024/05/21 12:32
每次求一个数n的质因子,适合n不多,但n很大
#include<stdio.h>int main(){ __int64 a[100],num,i,n; while(scanf("%I64d",&n)!=EOF) { num=0; for(i=2;i*i<=n;i++) { if(n%i==0) { a[num++]=i; while(n%i==0) n=n/i; } } if(n>1) a[num++]=n; for(i=0;i<num;i++) printf("%I64d ",a[i]); printf("\n"); } return 0;}
一次性求出1~n所有数的质因子,适合n很大,但n不大
#include<iostream>#include<vector>#include<algorithm>#include<string.h>using namespace std;int visited[100010];vector<int>a[100010];void init(){ int i,j; for(i=0;i<100010;i++) a[i].clear();//vector的清空 memset(visited,0,sizeof(visited)); for(i=2;i<=100000;i++) { if(visited[i]==0)//i是素数这是可以保证的 { a[i].push_back(i); for(j=i+i;j<=100000;j+=i)//筛选素数,其实这种方法没以前那种素数法快,但是这里用来求一个数的质因子就比较好了 { visited[j]=1; a[j].push_back(i); } } }}int main(){ int i,j; init(); for(i=0;i<=50;i++) { printf("%d:",i); for(j=0;j<a[i].size();j++) printf("%d ",a[i][j]); printf("\n"); } return 0;}
0 0
- 求质因子的模板
- ACM_模板_求质因子
- 求正整数的质因子
- 求n的质因子
- 求正整数的质因子
- 【因子算法】——求一个数的因子、质因子、求两个数的公因子
- 求n的质因子的个数
- 求质因子个数的方法
- 求质因子个数的方法
- 求每个数的质因子
- 求一个数的所有质因子
- 求一个数的质因子
- 求一个数的质因子
- 求最大质因子
- 求质因子
- 求n!中某个因子个数【模板】
- 反素数 模板 求因子的个数为n的最小的数是什么
- ACM_模板_求一个数的所有因子和(预处理打表)
- 深入理解java异常处理机制
- Android开发_Intent使用
- 标准C++中的string类的用法总结
- matlab调用C++文件
- 分享一种最简单的Android打渠道包的方法
- 求质因子的模板
- 常回顾 做备忘
- 第二周项目3时间类
- size_t浅析
- 谈谈团队合作中的设计与优化
- Redis集群原理3.0 官方文档 可用性、容错部分 持续更新
- [Thinking in JAVA] 关于内部类的一些知识点
- hdoj 2083 简易版之最短距离
- 蓝牙协议分析_基本概念