hdu 2136 Largest prime factor
来源:互联网 发布:腾讯全民wifi网络异常 编辑:程序博客网 时间:2024/04/20 02:32
题目:给一个数n,求它的最大质因数是第几个质数,1的为0, 2,3,5,7...分别为1,2,3,4......
分析:先打表吧1到1000000的质数到找出来放到prime[],在查找一直TLE....,参考了别人的思想,开一个数组prime【i】,先把2的倍数,赋值为1,3的倍数赋值为2,5的倍数赋值为3,..........以此类推....为了方便找质数,开一个数组vis【】吧访问过的合数全赋值为1,
#include<iostream>#include<cstdio>using namespace std;const int maxn=1000100;int prime[maxn];int vis[maxn];int main(){int n,c=0;memset(vis,0,sizeof(vis));prime[1]=0;for(int i=2;i<=maxn;i++){ if(vis[i]==0) { c++; for(int j=i;j<=maxn;j+=i) { prime[j]=c;vis[j]=1; } }}while(scanf("%d",&n)!=EOF){printf("%d\n",prime[n]);}system("pause");return 0;}
把TLE的代码也放这里吧.....希望以后能自己找到更高效的算法:
/*#include<iostream>#include<cstdio>#include<math.h>using namespace std;const int maxn=1000100;int prime[maxn];int vis[maxn];int main(){//筛素数int num=1;memset(vis,0,sizeof(vis));for(int i=2;i<=maxn;i++){/*int flag=1;for(int j=2;j<=(int)sqrt(i+0.5);j++){if(i%j==0){flag=0;break;}}if(flag==1){prime[num++]=i;}}*/if(!vis[i]){ prime[num++]=i; for(int j=i*i;j<=maxn;j+=i) vis[j]=1;////????????????}for(int j=i*2;j<=maxn;j+=i)vis[j]=1;}for(int i=2;i<=maxn;i++)if(vis[i]==0)prime[num++]=i;//***********************for(int i=1;i<=100;i++){printf("%d ",prime[i]);if(i%10==0)printf("\n");}int primesum=num-1;int n;while(scanf("%d",&n)!=EOF){if(n==1){printf("0\n");continue;}for(int i=(primesum<n?primesum:n);i>=1;i--) { if(n%prime[i]==0) { printf("%d\n",i); break; } }}system("pause"); return 0;}
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- hdu 2136 Largest prime factor
- HDU 2136 Largest prime factor
- hdu 2136 Largest prime factor
- hdu 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- hdu 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- HDU 2136 Largest prime factor
- hdu 2136 Largest prime factor
- hdu 2136 Largest prime factor
- hdu 2136 Largest prime factor
- servlet小结1
- C# 中的 volatile 关键字
- wordpress主题安装
- c语言中的sizeof()与strlen()的区别。
- WebService基于SoapHeader实现安全认证
- hdu 2136 Largest prime factor
- 混合高斯模型学习
- servlet小结2
- iphone开发之常用控件的使用详解
- 【并查集】Is it A Tree?
- 第9周实验报告5
- 用栈求括号匹配
- servlet小结3
- 非阻塞套接字用法