您的位置:首页 > 其它

hdoj 2136 Largest prime factor

2016-07-20 00:17 295 查看

Largest prime factor

Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6066 Accepted Submission(s): 1860
 
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


 
Author

Wiskey
 
Source

HDU 2007-11 Programming Contest_WarmUp
 
Recommend

威士忌
素数两次打表

代码:

<pre style="font-family: 'Courier New'; background-color: rgb(244, 251, 255);"><span style="color:blue;">#include<cstdio>
#include<cstring>
</span><strong><span style="color:blue;">int</span></strong> su<strong><span style="color:#FF00FF;">[</span></strong><span style="color:#CC3300;">1000000</span><strong><span style="color:#FF00FF;">];</span><span style="color:blue;">
int</span></strong> shu<strong><span style="color:#FF00FF;">[</span></strong><span style="color:#CC3300;">2000100</span><strong><span style="color:#FF00FF;">];</span><span style="color:blue;">
int</span></strong> zhao<strong><span style="color:#FF00FF;">(</span><span style="color:blue;">int</span></strong> xx<strong><span style="color:#FF00FF;">)
{</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>xx<strong><span style="color:#FF00FF;"><=</span></strong><span style="color:#CC3300;">2</span><strong><span style="color:#FF00FF;">)</span><span style="color:#0000FF;"> return</span></strong><span style="color:#CC3300;"> 1</span><strong><span style="color:#FF00FF;">;</span><span style="color:blue;">
int</span></strong> R<strong><span style="color:#FF00FF;">=</span></strong><span style="color:#CC3300;">148932</span><strong><span style="color:#FF00FF;">,</span></strong>L<strong><span style="color:#FF00FF;">=</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">,</span></strong>M<strong><span style="color:#FF00FF;">,</span></strong>lp<strong><span style="color:#FF00FF;">;</span><span style="color:#0000FF;">
while</span><span style="color:#FF00FF;"> (</span></strong>L<strong><span style="color:#FF00FF;"><=</span></strong>R<strong><span style="color:#FF00FF;">)
{</span></strong>
M<strong><span style="color:#FF00FF;">=(</span></strong>L<strong><span style="color:#FF00FF;">+</span></strong>R<strong><span style="color:#FF00FF;">)/</span></strong><span style="color:#CC3300;">2</span><strong><span style="color:#FF00FF;">;</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>su<strong><span style="color:#FF00FF;">[</span></strong>M<strong><span style="color:#FF00FF;">]==</span></strong>xx<strong><span style="color:#FF00FF;">)</span><span style="color:#0000FF;">
return</span></strong> M<strong><span style="color:#FF00FF;">+</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">;</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>su<strong><span style="color:#FF00FF;">[</span></strong>M<strong><span style="color:#FF00FF;">]<</span></strong>xx<strong><span style="color:#FF00FF;">)
{</span></strong>
L<strong><span style="color:#FF00FF;">=</span></strong>M<strong><span style="color:#FF00FF;">+</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">;
}</span><span style="color:#0000FF;">
else</span></strong>
R<strong><span style="color:#FF00FF;">=</span></strong>M<strong><span style="color:#FF00FF;">-</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">;
}
}</span><span style="color:blue;">
int</span><span style="color:#0000FF;"> main</span><span style="color:#FF00FF;">()
{</span><span style="color:blue;">
int</span></strong> a<strong><span style="color:#FF00FF;">,</span></strong>b<strong><span style="color:#FF00FF;">;</span><span style="color:blue;">
int</span></strong> kp<strong><span style="color:#FF00FF;">=</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">;</span><span style="color:blue;">long long</span></strong> ii<strong><span style="color:#FF00FF;">,</span></strong>jj<strong><span style="color:#FF00FF;">;</span></strong>
memset<strong><span style="color:#FF00FF;">(</span></strong>shu<strong><span style="color:#FF00FF;">,</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">,</span><span style="color:#0000FF;">sizeof</span><span style="color:#FF00FF;">(</span></strong>shu<strong><span style="color:#FF00FF;">));</span><span style="color:#0000FF;">
for</span><span style="color:#FF00FF;"> (</span></strong>ii<strong><span style="color:#FF00FF;">=</span></strong><span style="color:#CC3300;">2</span><strong><span style="color:#FF00FF;">;</span></strong>ii<strong><span style="color:#FF00FF;"><</span></strong><span style="color:#CC3300;">2000001</span><strong><span style="color:#FF00FF;">;</span></strong>ii<strong><span style="color:#FF00FF;">++)
{</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>shu<strong><span style="color:#FF00FF;">[</span></strong>ii<strong><span style="color:#FF00FF;">]==</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">)
{</span></strong>
su<strong><span style="color:#FF00FF;">[</span></strong>kp<strong><span style="color:#FF00FF;">++]=</span></strong>ii<strong><span style="color:#FF00FF;">;</span><span style="color:#0000FF;">
for</span><span style="color:#FF00FF;"> (</span></strong>jj<strong><span style="color:#FF00FF;">=</span></strong>ii<strong><span style="color:#FF00FF;">*</span></strong>ii<strong><span style="color:#FF00FF;">;</span></strong>jj<strong><span style="color:#FF00FF;"><</span></strong><span style="color:#CC3300;">2000001</span><strong><span style="color:#FF00FF;">;</span></strong>jj<strong><span style="color:#FF00FF;">+=</span></strong>ii<strong><span style="color:#FF00FF;">)</span></strong>
shu<strong><span style="color:#FF00FF;">[</span></strong>jj<strong><span style="color:#FF00FF;">]=</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">;
}
}</span><span style="color:#0000FF;">
while</span><span style="color:#FF00FF;"> (~</span></strong>scanf<strong><span style="color:#FF00FF;">(</span></strong><span style="color:green;">"%d"</span><strong><span style="color:#FF00FF;">,&</span></strong>a<strong><span style="color:#FF00FF;">))
{</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>a<strong><span style="color:#FF00FF;">==</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">)
{</span></strong>
printf<strong><span style="color:#FF00FF;">(</span></strong><span style="color:green;">"0\n"</span><strong><span style="color:#FF00FF;">);</span><span style="color:#0000FF;">
continue</span><span style="color:#FF00FF;">;
}</span><span style="color:#0000FF;">
for</span><span style="color:#FF00FF;"> (</span></strong>b<strong><span style="color:#FF00FF;">=</span></strong><span style="color:#CC3300;">2</span><strong><span style="color:#FF00FF;">;</span></strong>b<strong><span style="color:#FF00FF;">*</span></strong>b<strong><span style="color:#FF00FF;"><=</span></strong>a<strong><span style="color:#FF00FF;">;</span></strong>b<strong><span style="color:#FF00FF;">++)
{</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>shu<strong><span style="color:#FF00FF;">[</span></strong>b<strong><span style="color:#FF00FF;">]==</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">)</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>a<strong><span style="color:#FF00FF;">%</span></strong>b<strong><span style="color:#FF00FF;">==</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">)
{</span><span style="color:#0000FF;">
while</span><span style="color:#FF00FF;"> (</span></strong>a<strong><span style="color:#FF00FF;">%</span></strong>b<strong><span style="color:#FF00FF;">==</span></strong><span style="color:#CC3300;">0</span><strong><span style="color:#FF00FF;">)</span></strong>
a<strong><span style="color:#FF00FF;">/=</span></strong>b<strong><span style="color:#FF00FF;">;
}
}</span><span style="color:#0000FF;">
if</span><span style="color:#FF00FF;"> (</span></strong>a<strong><span style="color:#FF00FF;">></span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">)</span></strong>
printf<strong><span style="color:#FF00FF;">(</span></strong><span style="color:green;">"%d\n"</span><strong><span style="color:#FF00FF;">,</span></strong>zhao<strong><span style="color:#FF00FF;">(</span></strong>a<strong><span style="color:#FF00FF;">));</span><span style="color:#0000FF;">
else</span></strong>
printf<strong><span style="color:#FF00FF;">(</span></strong><span style="color:green;">"%d\n"</span><strong><span style="color:#FF00FF;">,</span></strong>zhao<strong><span style="color:#FF00FF;">(</span></strong>b<strong><span style="color:#FF00FF;">-</span></strong><span style="color:#CC3300;">1</span><strong><span style="color:#FF00FF;">));
}</span><span style="color:#0000FF;">
return</span></strong><span style="color:#CC3300;"> 0</span><strong><span style="color:#FF00FF;">;
}</span></strong>


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: