您的位置:首页 > 编程语言 > Java开发

JAVA hdu 2136 Largest prime factor

2014-01-24 05:24 477 查看
基于相同的算法,c++AC,JAVA T掉了。

C++:

#include<stdio.h>
#include<string.h>
#define N 1000000
int ans[N+5];
void Init()
{
memset(ans,0,sizeof(ans));
int count=1;
for(int i=2; i<=N; i++)
{
if(ans[i]==0)
{
for(int j=i; j<=N; j+=i)
ans[j]=count;
count++;
}
}
return ;
}
int main()
{
Init();
int n;
while(scanf("%d",&n)!=EOF)
printf("%d\n",ans
);
return 0;
}


JAVA:

import java.util.*;

class A {
int[] ans = new int[1000005];

public void setAns() {
int count = 1;
for (int i = 2; i <= 1000000; i++) {
if (ans[i] == 0) {
for (int j = i; j <= 1000000; j += i)
ans[j] = count;
count++;
}
}
}

public int getAns(int n) {
return ans
;
}
}

public class Main {
public static void main(String[] args) {
Scanner inScanner = new Scanner(System.in);
A a = new A();
a.setAns();
while (inScanner.hasNextInt())
System.out.println(a.getAns(inScanner.nextInt()));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: