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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章