您的位置:首页 > 其它

hdu 2710 最大的素数因子

2014-08-15 15:06 253 查看
给出一系列的数,判断谁的素数因子最大,然后把它输出

它本身不是素数,但它可以是两个素数的城际,那两个素数就是它的素数因子

#include<stdio.h>

#define M 20000+10

int pre[M];

int main()

{

    int i,j;

    pre[0]=1;

    pre[1]=0;

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

      {

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

           pre[j]=1;      //先进行素数打表,是素数的值为0,否则为1,此处把1当成素数        

      }

      int x,y,n,a;

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

      {

          x=y=0;

          for(i=0;i<n;i++)

          {

             scanf("%d",&a);

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

              {//不能继续用i,会把上面i的值转变

                 if(!pre[j])//是素数

                 {

                    if(a%j==0 && j>x)//并且是它的素数因子,并且最大

                    {

                       x=j;

                       y=a;

                       break;         

                    }         

                 }              

              }               

          } 

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

      }

      return 0;

}

/*

输出解释:

19是38的最大的素因子。其它没有哪个数有比它更大的素因子了。

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