您的位置:首页 > 其它

nyoj-520-最大素因子

2013-08-20 15:11 232 查看
#include<stdio.h>

#define M 1000001

int a[M]={0};

void sushu()

{

 int i,j,m;

 //memset(a,0,sizeof(a));

 //memset(b,0,sizeof(b));

 //a[0]=a[1]=1;

 m=0;

 for(i=2;i<M;i++)

 {

  if(a[i]==0)

  {

   m++;

   for(j=i;j<M;j+=i)

    a[j]=m;

  }

  /*for(j=i+i;j<M;j+=i)

   a[j]=1;

  if(a[i]!=1)

    b[i]=b[i-1]+1;

   else b[i]=b[i-1];*/

 }

}

int main()

{

 int n;

 sushu();

 while(scanf("%d",&n)!=EOF)

 {

    printf("%d\n",a
);

 }

 return 0;

}

//超时法

#include<stdio.h>

#define M 1000001

int a[M]={0},b[M]={0},c[M]={0};

void sushu()

{

 int i,j;

 for(i=2;i<M;i++)

 {

  for(j=i+i;j<M;j+=i)

   a[j]=1;

     if(a[i]!=1)

    b[i]=b[i-1]+1;

   else b[i]=b[i-1];

 }

}

void jieguo()

{

 int i,m,j;

    sushu();

 for(i=1;i<M;i++)

 {

  for(j=i;j>0;j--)

   if(a[j]==0&&i%j==0)

   {

    m=j;

    break;

   }

   c[i]=b[m];

 }

}

int main()

{

 int n;

 jieguo();

 while(scanf("%d",&n)!=EOF)

 {

    printf("%d\n",c
);

 }

 return 0;

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