nyoj-520-最大素因子

最大素因子

時間限制:1000 ms  |  內存限制:65535 KB
難度:2
描述

GreyAnts最近正在學習數論中的素數,但是現在他遇到了一個難題:給定一個整數n,要求我們求出n的最大素因子的序數,例如:2的序數是1,3的序數是2,5的序數是3,以此類推. 研究數論是需要很大的耐心的,爲了懲罰那些沒有耐心讀完題目的童鞋,我們規定:1的最大素因子序數是0.

輸入
有多組測試數據,每一行輸入一個數字n.(0<n<=1000000)
輸出
在接下來的一行,輸出結果.
樣例輸入
2
3
4
5
樣例輸出
1
2
1
3
來源
hdu改編
上傳者

ACM_李如兵


往往一旦超時就不知如何是好,稍加修改很難解決問題,這時必須換種方法。

/**
 * Project Name: nyoj_2.0 
 * File Name: 520.cpp
 * Created on: 2015年5月9日 下午2:58:09
 * Author: jtahstu 
 * QQ: 1373758426 E-mail:[email protected]
 * Copyright (c) 2015, jtahstu , All Rights Reserved.
 */
#include<cstdio>
#include<algorithm>
using namespace std;
int a[1000005];
int icount = 1;
int main()
{
    for(int i = 2; i <= 1000000; i++)//篩法求素數,然後給素數賦值,即第幾個
    {
        if(!a[i])
        {
            a[i] = icount++;
            for(int j = i * 2; j <= 1000000; j += i)
                a[j] = a[i];
        }
    }
    int num;
    while(scanf("%d", &num) == 1)
    {
        for(int i = num; i >= 1; i--)
        {
            if(num % i == 0 && a[i] != -1)
            {
                printf("%d\n", a[i]);
                break;
            }
        }
    }
}

#include<iostream>//TLE
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
bool prime520(int a) {
	for (int i = 2; i * i <= a; i++)
		if (a % i == 0)
			return false;
	return true;
}
int main2() {
	int count = 1, a[80000] = { 0 }, n;
	for (int i = 2; i <= 1000000; i++)
		if (prime520(i))
			a[count++] = i;
	while (cin >> n) {
		if (n == 1)
			cout << "0" << endl;
		else if (prime520(n)) {
			for (int j = 1; j < count; j++)
				if (a[j] == n) {
					cout << j << endl;
					break;
				}
		} else {
			bool flag = false;
			for (int i = n / 2; i > 0; i--)
				if (!flag) {
					if (n % i == 0 && prime520(i)) {
						for (int j = 1; j < count; j++)
							if (a[j] == i) {
								flag = true;
								cout << j << endl;
								break;
							}

					}
				}
		}
	}
	return 0;
}


發佈了189 篇原創文章 · 獲贊 30 · 訪問量 160萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章