【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor
Largest prime factor
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6990 Accepted Submission(s): 2471
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.
1
2
3
4
5
0
1
2
1
3
我的思路 先打了素数表 再用二分查找去找最大的素数。。结果果断TLE了
代码在此:
#include<stdio.h>
int YNprime[1000001];
int prime[200000];
int totprime=1;
int getprime(int maxN)
{
int i,j,k;
for(i=2;i<=maxN;i++)
if(YNprime[i]==0)
{
prime[totprime++]=i;
for(j=2;i*j<=maxN;j++)
YNprime[i*j]=1;
}
return 1;
}
int find(int s,int t,int N)
{
int i;
int m=(s+t)/2;
if(s==t) return s;
if(prime[m]>N) return find(s,m,N);
if(prime[m]<N) return find(m+1,t,N);
else return m;
}
int main()
{
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
int n,i,ans,k;
getprime(1000000);
while(scanf("%d",&n)!=EOF)
{
ans=0;
if(n==1) {printf("0\n");continue;}
k=find(1,totprime-1,n);
for(i=k+10;i>=1;i--)
if(n%prime[i]==0) {ans=i;break;}
printf("%d\n",ans);
}
return 0;
}
结果发现沙茶了
筛选法的时候就能直接找最大的素数
#include <cstdio>
#include <iostream> using namespace std; #define Maxl 1000005
int prime[Maxl];
int rank[Maxl];
int main()
{
int k = 0, i, j;
for (i =2; i < Maxl; i++)
{
if (prime[i] == 0)
{
rank[i] = ++k;
for (j = i; j < Maxl; j += i)
{
prime[j] = i;
}
}
}
prime[1] = 0;
int n;
while(scanf("%d", &n) == 1)
{
if(n == 1)
{
printf("0\n");
continue;
}
int k = prime[n];
printf("%d\n", rank[k]);
}
}
【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor的更多相关文章
- [暑假集训--数论]hdu2136 Largest prime factor
Everybody knows any number can be combined by the prime number. Now, your task is telling me what po ...
- [HDU2136] Largest prime factor(素数筛)
传送门 题意 给出若干个数n(n<=1000000),求每个n的最大质因子的排名. 质数的排名:如果素数p是第k小的素数,那么p的排名就是k. 思路 乍一看不知道怎么搞. 其实可以想想我们怎么筛 ...
- 数学--数论--HDU2136 Largest prime factor 线性筛法变形
Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...
- The largest prime factor(最大质因数)
1. 问题: The prime factors of 13195 are 5, 7, 13 and 29.What is the largest prime factor of the number ...
- R语言学习——欧拉计划(3)Largest prime factor 求最大质因数
The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...
- HDU 2136 Largest prime factor(查找素数,筛选法)
题目梗概:求1000000以内任意数的最大质因数是第几个素数,其中 定义 1为第0个,2为第1个,以此类推. #include<string.h> #include<stdio.h& ...
- HDOJ(HDU) 2136 Largest prime factor(素数筛选)
Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...
- hdu-2136 Largest prime factor---巧用素数筛法
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2136 题目大意: 每个素数在素数表中都有一个序号,设1的序号为0,则2的序号为1,3的序号为2,5的 ...
- HDU-4690 EBCDIC 映射,模拟,沙茶
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4690 纯沙茶模拟题... //STATUS:C++_AC_93MS_228KB #include &l ...
随机推荐
- [转]CodeIgniter与Zend Acl结合实现轻量级权限控制
Tag :CodeIgniter Zend Acl 权限控制 1. Zend_Acl简介 Zend_Acl 为权限管理提供轻量并灵活的访问控制列表 (ACL,access control list) ...
- [springmvc+mybatis][关于这两个框架的学习,我想说]
关于学习笔记 在对java web有了一定的了解后,这两个框架没怎么写学习笔记了…毕竟项目驱动型…… 关于学习资料 强烈推荐传智播客的燕青讲解的 让我对这种培训班教育的资料刮目相看(不过还是千万别去这 ...
- HTTP协议之 简易浏览器(3)--转载
简单的说,今天的全部工作就是 我的目的只有两个 1.加深对http协议的理解 2.深化对B/S结构的认识. 代码 1 /* 2 这个程序把主机地址写死了, 3 想更像的话,可以在加个输入.然后根据 ...
- J2EE 中 The function valueOf must be used with a prefix when a default namespace is not specified 错误
jsp页面中,JSTL El表达式字符串比较常用方法 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, sear ...
- 转化json
/// <summary> /// 转换成JSON字符串 /// </summary> /// <param name="jsonObject"> ...
- <modules runAllManagedModulesForAllRequests="true" />(转1)
最近在使用 MVC 开发的时候,遇到一个对我来说“奇怪的问题”,就是使用 BundleTable 进行 CSS.JS 文件绑定,然后使用 Styles.Render.Scripts.Render 进行 ...
- 注册界面设计及实现之(三)SharedPerferences实现数据暂存
开发步骤: 创建一个SharedPerferences接口对象,并使用其putString方法放入相关的公共数据 将验证通过的注册账号写入到该文件中 将数据进行提交 给出客户提示 //Register ...
- Windows Phone 学习教程(一)
http://www.cnblogs.com/webabcd/category/385852.html Windows Phone 7 教程 Windows Phone 8.1 Windows Pho ...
- iOS-设计模式之Block
Block是代码块, Block定义 返回值 (^ 块名)(参数1,参数2…); 在定义Block的时候可以使用typedef 重命名一下. typedef void(^blockName)(NSSt ...
- block中无法使用C数组变量
在Objective-C的block中无法使用C数组,即使我们不对C数组做任何改变,编译的时候也会报错: #include <stdio.h> int main() { const cha ...