HDU 2136 Largest prime factor 參考代码
2016-03-30 15:32
501 查看
#include <iostream> #include <vector> #include <cmath> using namespace std; const int MAX=1000001; bool isPrime[MAX];//isPrime[i]=true表示是素数,false表示不是 int indexes[MAX]; //存放素数因子的序号 void eraosthenes() { fill(isPrime,isPrime+MAX,true);//如果0~MAX都是素数 isPrime[0]=isPrime[1]=false; //把0,1筛去 int n=sqrt((double)MAX); for(int i=2; i<=n; i++) { if (isPrime[i]==false) continue; for(int j=i*i; j<MAX; j+=i) { if (isPrime[j]==false) continue; isPrime[j]=false; } } } void createIndexes() { eraosthenes(); int i,k=1; for(i=2; i<MAX; i++) if (isPrime[i]==true) indexes[i]=k++; int m=MAX/2; for(i=2; i<=m; i++) { if (isPrime[i]==true) { int pos=2*i; while(pos<MAX) { indexes[pos]=indexes[i]; pos+=i; } } } } bool run() { int n; if (scanf("%d",&n)==EOF) return false; printf("%d\n",indexes ); return true; } int main() { createIndexes(); while(run()); return 0; }
相关文章推荐
- 共有24款C/C++ 地理信息系统GIS开源软件
- JAVA SWT 控件与面板
- C# 事件的简单理解
- 《Python核心编程》第六章:序列、字符串、列表和元组
- 【JAVA】JVM垃圾回收(GC)原理(转)
- Java中使用Timer和TimerTask实现多线程
- JavaSe基础(7)-- 继承
- 低层次的渲染应用程序编程接口--Metal
- Eclipse 创建web项目后没有 Java EE 5 Library,没有web开发相关基础java包,myeclipse中有。
- python 学习 第一课
- javaweb学习总结(二十)——JavaBean总结
- java基础Haep(堆)和Stack(栈)区别
- java基础Haep(堆)和Stack(栈)区别
- phpcms修改伪静态
- java基础Haep(堆)和Stack(栈)区别
- Google带WiFi的热气球或首次商用
- java多线程-Lock接口(将多线程共享资源锁定)
- python 使用微信远程控制电脑
- qt dll的创建和使用
- leetcode-03-Longest Substring Without Repeating Characters-python