最大素因子

最大素因子

时间限制: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

代码:
#include<stdio.h>
int prime[1000001]={0,0,1};
void Prime()
{
	int i,j,count;
	for(i=3;i<1000001;i=i+2)
	{
		prime[i]=1;
		prime[i+1]=0;
	}
	count=1;
	for(i=2;i<1000001;i++)
	{
		if(prime[i]!=0)
		{
			prime[i]=count++;
			for(j=2*i;j<1000001;j=j+i)
				prime[j]=0;
		}
	}
	for(i=2;i<1000001;i++)
	{
		for(j=2*i;j<1000001;j=j+i)
		{
				prime[j]=prime[i];
		}

	}
}
int main()
{
	int n;
	Prime();
	while(~scanf("%d",&n))
	{
		printf("%d\n",prime[n]);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-29 23:58:40

最大素因子的相关文章

Duff in Love_数论_素因子应用

Duff in Love TimeLimit:2000MS  MemoryLimit:256MB 64-bit integer IO format:%I64d Problem Description Duff is in love with lovely numbers! A positive integer x is called lovely if and only if there is no such positive integer a > 1 such that a2 is a di

hdu-1299 Diophantus of Alexandria(分解素因子)

思路: 因为x,y必须要大与n,那么将y设为(n+k);那么根据等式可求的x=(n2)/k+n;因为y为整数所以k要整除n*n; 那么符合上面等式的x,y的个数就变为求能被n*n整除的数k的个数,且k>=n; 那么k就在n到n*n之间,不过这样不则么好求. 因为x,y具有对称性,从y=(n+k)和x=(n2)/k+n;也可以看出(n*n/k,和k等价因为k*(n*n/k)=n*n): 由于任何数都可以拆成素数的乘积,形式为a1^x1*a2^x2*a3*^x3......; 那么因数的个数为(1+

欧拉计划003. 最大素因子

Problem 3: Largest prime factor The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? 求出最大素因子 我的python代码如下: num=600851475143 div=2 while div<=num: if num%div==0: num=num/div else: div=div+1 prin

POJ2635-The Embarrassed Cryptographer-大整数素因子

计算一个大整数(10^100)中有没有一个小于L的素因子.这个大整数是两个素数的乘积.其实就是RSA加密. 做法是把大整数表示成千进位,用数组存储,然后一位一位地取模. /*--------------------------------------------------------------------------------------*/ // Helica's header // Second Editions // 2015.11.7 // #include <algorithm>

LightOJ 1340 - Story of Tomisu Ghost 阶乘分解素因子

http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分解素因子可以得到最大的指数.那么问题关键在于求得n!的素因子的指数,找到指数大于t的所有素因子,再将那些指数除去t,剩下的数就是最大的b了.分解阶乘时,对n不断除素数p,直到n为0时,此时商的和即该素因子的指数. /** @Date : 2016-11-30-19.35 * @Author : Lw

算素因子种类数个个数的题目

素因子种类数: 对于一个n,他的素因子总类数 有多少? Facebook Hackercup Round1 Homework题,10pts 运用筛法,然后P[j]=i ->P[j]++ int GetPrimeFactorTypeTimes(int n) { memset(P , 0, sizeof P); for(int i=2;2*i<=n;i++) { if(!P[i]) { for(int j=2*i;j<=n;j+=i) P[j]++; } } return P[n]; } 素

NYOJ 476 谁是英雄(唯一素因子分解定理)

题目描述 http://acm.nyist.net/JudgeOnline/problem.php?pid=476 十个数学家(编号0-9)乘气球飞行在太平洋上空.当横越赤道时,他们决定庆祝一下这一壮举.于是他们开了一瓶香槟.不幸 的是,软木塞在气球上打了一个洞,氢气泄漏,气球开始下降,眼看就要落入海中,所有人将要被鲨鱼吃掉. 但是尚有一线生机--若其中一人牺牲自己跳下去的话,那他的朋友们还能多活一会儿.但仍然有一个问题存在--谁 跳下去?所以他们想了一个非常公平的办法来解决这个问题--首先,每

庞果网之素因子集合

[题目] 题目详情 小强最近在学初等数论,老师给他们出了一个课后习题,那就是给你两个正整数A,B(0<A,B<2^60),判断他们的素因子集合是否相同,小强刚接触数论,想了好一会还是没能想出来,你能帮助他吗? 输入描述: 输入包含多组测试数据,每组测试数据包含两个正整数A,B,以文件结束. 输出描述: 对于每组测试数据如果A和B的素因子集合相同则输出"YES",否则输出"NO". 答题说明 输入样例: 2 8 4 9 10 50 输出样例: YES NO

求一个数的最大素因子(python实现)

首先想到的是,将这个数进行素因子分解,得到所有的因子,然后取最大的. 首先写一个判断一个数是否是素数的方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #judge a number whether a prime     def judgePrime(self,number,pme):         if number < 2:             return False;         if number

HDU2710 Max Factor【水题】【素因子】

Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4110    Accepted Submission(s): 1342 Problem Description To improve the organization of his farm, Farmer John labels each of his N (1