Largest prime factor

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 13481    Accepted Submission(s): 4765

Problem Description
Everybody knows any number can be combined by the prime number.
Now, your task is telling me what position of the largest prime factor.
The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.
Specially, LPF(1) = 0.
 
Input
Each line will contain one integer n(0 < n < 1000000).
 
Output
Output the LPF(n).
 
Sample Input
1
2
3
4
5
 
Sample Output
0
1
2
1
3
 
题意:众所周知,一个数可以由素数因子(和其它因子素数或者非素数 )相乘而形成,比如2的质数因子是2(也就是第1个质数),3是3(也就是第2个质数),4是2(也就是第1个质数)……然后题意就是问你是第几个素数。
解题思路:表示刚刚看到题目是懵逼的,看了人家的题解也是懵逼的,可能和自己在家里好久没A题目了有关系。
                  题目思路是这样:1.先做一个全局变量(如果不是全局变量就会出现栈溢出),然后把那个全部置为0。a[i]=x  i表示是某个数 x表示是第几个质数
                                               2.再开始打表,从第a[2]个开始看它是不是素数,是就把当前cnt做a[i]=cnt,然后把i的倍数 a[n*i]=cnt(循环),然后因为后面这些数都是2的倍数,它们就不是质数,但如果有质                                                    数比2 大且是它们的素数因子的话 就会再之后的判断中更新。
                                               3.用scanf("%d",&n)!=EOF来读取数据,不然会超时,不加EOF也不行因为不加的话会不断的读取数据,还是会超时。
附上代码:
  1. #include <iostream>
  2. #include<math.h>
  3. #include <iomanip>
  4. #include<cstdio>
  5. #include<string>
  6. #include<map>
  7. #include<vector>
  8. #include<list>
  9. #include<algorithm>
  10. #include<stdlib.h>
  11. #include<iterator>
  12. #include<sstream>
  13. #include<string.h>
  14. #include<stdio.h>
  15. using namespace std;
  16.  
  17. //题目的意思是找到最大素数因子的位置 就是第几个素数而不是
  18. //找到最大素数因子
  19. int a[];//要定义全局变量 不然会栈溢出
  20. int main()
  21. {
  22. int cnt=;//记录排第几个
  23.  
  24. memset(a,,sizeof(a));//把所有的数组中的数全部置为0
  25. // a[1]=0;
  26. for(int i=;i<;i++)//素数从2开始排 因为题目要求是1
  27. {
  28. if(a[i]==)//表示是素数 因为没有它的因子让它置为其它数
  29. {
  30. a[i]=cnt;
  31.  
  32. for(int k=*i;k<;k=k+i)//是素数就先把它的倍数给置数
  33. {// 然后遇到大的就不断刷新
  34. a[k]=cnt;
  35. }
  36. cnt++;
  37. }
  38. }
  39. int n;
  40. while(scanf("%d",&n)!=EOF)
  41. {
  42. printf("%d\n",a[n]);
  43. }
  44. return ;
  45. }

这题感觉花了一定的时间才弄懂。

杭电 2136 Largest prime factor(最大素数因子的位置)的更多相关文章

  1. HDU 2136 Largest prime factor (素数打表。。。)

    题意:给你一个数,让你求它的最大因子在素数表的位置. 析:看起来挺简单的题,可是我却WA了一晚上,后来终于明白了,这个第一层循环不是到平方根, 这个题和判断素数不一样,只要明白了这一点,就很简单了. ...

  2. HDU 2136 Largest prime factor(查找素数,筛选法)

    题目梗概:求1000000以内任意数的最大质因数是第几个素数,其中 定义 1为第0个,2为第1个,以此类推. #include<string.h> #include<stdio.h& ...

  3. HDOJ(HDU) 2136 Largest prime factor(素数筛选)

    Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...

  4. 2136 Largest prime factor(打表)

    Problem Description Everybody knows any number can be combined by the prime number.Now, your task is ...

  5. HDU 2136 Largest prime factor 參考代码

    #include <iostream> #include <vector> #include <cmath> using namespace std; const ...

  6. HDU 2136 Largest prime factor

    题目大意:求出比给出数小的互质的质数个数. 题解:直接用筛法求素数,稍微改编一下,将原先的布尔数组变为数组用来记录信息就可以了. 注意点:大的数组定义要放在程序的开头,不要放在main里面,不然会栈溢 ...

  7. [HDU2136] Largest prime factor(素数筛)

    传送门 题意 给出若干个数n(n<=1000000),求每个n的最大质因子的排名. 质数的排名:如果素数p是第k小的素数,那么p的排名就是k. 思路 乍一看不知道怎么搞. 其实可以想想我们怎么筛 ...

  8. 【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor

    Largest prime factor Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  9. 【ACM】Largest prime factor

    /*打表把素数能组合的数先设置成相应的位数*/ /* if n equals two and n is No.1 position of prime factors  so four position ...

随机推荐

  1. Iris项目结构

  2. Multisim 如何添加文本 如何编辑文本字体

    1.在Multisim中如何添加文本 方法1)Place -> Text 方法2)Ctrl+T 2.如何修改字体的大小及颜色

  3. sqli-libs(23-28a关)

    Less_23 首先在php文件中加入echo $sql;echo "<br>"; 方法一: :%00 输入?id=1’,报错,说明存在注入漏洞: 输入?id=1' - ...

  4. 左偏树 (bzoj 2809)

    Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都有且仅有一个上级. ...

  5. 使用pyaudio播放无损音乐(wav)

    安装pyaudio sudo apt-get install python-pyaudio python3-pyaudio pip3 install pyaudio 执行第二步可能会遇到如下错误: 根 ...

  6. PHP基础学习笔记3

    一.检索表单信息 PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入 提交的表单: <form action="welcome.php" me ...

  7. Hadoop3.1.1源码Client详解 : 写入准备-RPC调用与流的建立

    该系列总览: Hadoop3.1.1架构体系——设计原理阐述与Client源码图文详解 : 总览 关于RPC(Remote Procedure Call),如果没有概念,可以参考一下RMI(Remot ...

  8. C++记录(一)

    1 extern 符表示该变量不是当前作用域定义的,用于声明. 如extern i;表示i不是当前作用域里的,是其他某个include的cpp文件里的变量. 2 int *p=0;相当于初始化p为空指 ...

  9. 前后端分离之 跨域和JWT

    书接上回:https://www.cnblogs.com/yangyuanhu/p/12081525.html 前后端分离案例 现在把自己当成是前端,要开发一个前后分离的简单页面,用于展示学生信息列表 ...

  10. 推荐算法之---FM算法;

    一,FM算法: 1,逻辑回归上面进行了交叉特征.算法复杂度优化从O(n^3)->O(k*n^2)->O(k*n). 2,本质:每个特征都有一个k维的向量,代表的是每个特征都有k个不可告人的 ...