• HDU 2136 Largest prime factor


    Largest prime factor
    Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 20812 Accepted Submission(s): 7086

    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开始的第几个质数。
    先打表把素数能组合的数先设置成相应的位数
    在解决问题之前,先介绍一下什么是素数筛选法。筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。
    该题目可以用素数筛选法的思想来解决。以求14的最大质因子的位次为例,筛选过程详见以下表格:

    a(i)表示a是从2开始的第i个质数

    从表格中可以看出,经过7轮筛选,就可以确定14的质因子只有2和7,而最大的质因子7是从2开始的第4个质数。

    #include<iostream>
    #include<cstdio>
    using namespace std;
    #define max 1000001
    int LPF[max]={0};
    int main()
    {
    	ios::sync_with_stdio(false);
    	//素数筛选法
    	LPF[1] = 0;
    	int pos=0;
    	for(int i=2;i<max;i++)
    	{
    		if(!LPF[i])
    		{
    			++pos;
    			for(int j=i;j<max;j+=i)
    			{
    				LPF[j]=pos;
    			}
    		}
    	}
    	int n;
    	while(scanf("%d",&n)!=EOF)
    	{
    		printf("%d
    ",LPF[n]);
    	}
    	return 0;
    }
    

    对了,还有一个问题,关于cin cout超时问题
    用cin,cout来进行输入输出的操作 会超时 而用scanf printf来输入输出却AC 了
    这是因为 很多编译器对scanf printf进行了处理和优化 导致scanf printf处理数据的速度会比cin,cout更快
    所以建议大家在参加一些比赛时 尽量用scanf 和printf 来进行输入输出操作 这样可以更快一些(尤其是很多数据的时候)

  • 相关阅读:
    蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    抠图|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    轻重搭配|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    后缀字符串|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    LIS|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    倍数|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    找质数|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
    2018年第九届蓝桥杯B组题C++汇总解析-fishers
    RepPoints v2: Verification Meets Regression for Object Detection
    i 的二次幂求和
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/12612610.html
Copyright © 2020-2023  润新知