hdu(1164)

来源:互联网 发布:淘宝首页视频怎么上传 编辑:程序博客网 时间:2024/06/11 00:01

这题不利用素数更简单。。

#include"stdio.h"
#include"string.h"
int map[70000];
int main()
{
 int m,i,j;
 while(scanf("%d",&m)!=EOF)
 {
  j=1;
  for(i=2;i<=m;)
  {
   while(m%i)
    i++;
   m=m/i;
   map[j++]=i;
  }
  for(i=1;i<j;i++)
  {
   printf("%d",map[i]);
   if(i<j-1)
    printf("*");
  }
  printf("\n");
 }
 return 0;
}

 

 

#include<stdio.h>
#include<math.h>
#define N 65537
int main()
{
 int k,j,i,s,m,num,a[N],pri[N],q,p;
 s=(int)sqrt(1.0*N);
 for(i=0;i<65537;i++)
  a[i]=1;
 a[0]=a[1]=0;
 for(i=2;i<=s;i++)
 {
  if(a[i]==1)
  {
   for(j=2*i;j<=N;j=j+i)
    a[j]=0;
  }
 }
 k=0;
 for(i=2;i<=N;i++)
  if(a[i]!=0)
  {
   pri[k]=i;
   k++;
  }
  q=0;
  while(scanf("%d",&m)!=EOF)
  {
   p=0;
   if(a[m]!=0)
   {
    printf("%d\n",m);
    continue;
   }
   while(m!=1)
   {
    num=0;
    while(m%pri[p]==0)
    {
     m=m/pri[p];
      printf("%d",pri[p]);
      if(m!=1)
       printf("*");
    }
    p++;
   }
   printf("\n");
  }
  return 0;
}

 

原创粉丝点击