快速求n的质因子

如何尽快地求出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;
}

转载自:http://www.cnblogs.com/jiangjing/archive/2013/06/03/3115470.html

最新文章

  1. [LeetCode] Range Sum Query - Mutable 区域和检索 - 可变
  2. flask+sqlite3+echarts3+ajax 异步数据加载
  3. Vitrualbox虚拟机网络设置
  4. docker网络基础配置
  5. 在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误
  6. [读书笔记]C#学习笔记四: C#2.0泛型 可控类型 匿名方法和迭代器
  7. Angular系列----AngularJS入门教程00:引导程序(转载)
  8. 删除binlog的方法
  9. Huge CSV and XML Files in Python, Error: field larger than field limit (131072)
  10. android-ramdisk.img分析、recovery.img&amp;boot.img执行过程
  11. PowerDesigner 怎么给 Table Properties 增加注释和默认值
  12. eclipse处理长字符串拼接快捷方法类
  13. 回想一下著名的BigTable论题
  14. 介绍call和apply
  15. Precision 7520双硬盘无法识别固态硬盘
  16. Elasticsearch6.x和Kibana6.x的安装
  17. dskinlite(uieasy mfc界面库)使用记录2:绘制动态元素(按钮控件绘制元素动态控制,改变图片和文字)
  18. Apache-Flink深度解析-DataStream-Connectors之Kafka
  19. [Java JNI] [Windows] [Visual Studio] [DLL] [UnsatisfiedLinkError]
  20. IDM的Google商店插件

热门文章

  1. NOIP系列复习及题目集合
  2. mysql 二进制日志
  3. C#多线程 线程池
  4. java_easyui体系之DataGrid(2)[转]
  5. WPF 让Enter键按下时默认为某按钮(Button)事件
  6. Redis 集群解决方案 Codis
  7. HTML新增属性
  8. ubuntu13.04 nfs配置
  9. androidTV第一次创建(转:支持原创)
  10. CSS总结 最后的选择符和字体、元素常见样式