zoukankan      html  css  js  c++  java
  • HDOJ 1164 Eddy's research

    上一篇已经讲了,但是转载别人的很乱,这里自己根据blog里面写的思路,重新写过了一个程序

     1 #include <iostream>
     2 #include <malloc.h>
     3 #include <math.h>
     4 #define N 65535
     5 
     6 int primes[N];
     7 int SimpleDivsion()//生成1-65535之间所有的质数
     8 {
     9     int count=0;
    10     int i,j;
    11     //int *primes = (int *)malloc(sizeof(int)*n);
    12     primes[count++]=2;
    13 
    14     for(i=3;i<=65535;i++)
    15     {
    16         for(j=2;j<=(int)sqrt((double)i);j++)//这里要进行强制转换
    17         {
    18             if(i%j==0)
    19                 break;
    20         }
    21         if(j>(int)sqrt((double)i))
    22         {
    23             primes[count++]=i;
    24         }
    25     }
    26     return count;
    27     //for(i=0;i<count;i++)
    28         //printf("%d  ",primes[i]);
    29     //printf("
    ");
    30 }
    31 
    32 int main()
    33 {
    34     int test,i,count;
    35     count=SimpleDivsion();
    36     while(scanf("%d",&test)!=EOF)
    37     {
    38         int flag=1;
    39         i=0;
    40         for(;i<count;i++)
    41         {
    42             if(test%primes[i]==0)
    43             {
    44                 if(flag)
    45                 {
    46                     flag=0;
    47                     printf("%d",primes[i]);
    48                 }
    49                 else
    50                     printf("*%d",primes[i]);
    51                 test=test/primes[i];
    52                 i=-1;//每次都要重新开始,为什么是-1.因为执行i++后就是0,有没有更好的方法?
    53                 //将if(test%primes[i]==0)这句话换成while(test%primes[i]==0)即可将i=-1去掉
    54             }
    55             if(test==1)
    56                 break;
    57         }
    58         printf("
    ");
    59     }
    60 }
  • 相关阅读:
    链式表的操作
    顺序表的操作
    MDX基础
    1071 小赌怡情 (15 分)
    1069 微博转发抽奖 (20 分)
    1068 万绿丛中一点红 (20 分)
    1066 图像过滤 (15 分)
    02-线性结构2 一元多项式的乘法与加法运算 (20 分
    03-树1 树的同构 (25 分)
    03-树3 Tree Traversals Again (25 分)
  • 原文地址:https://www.cnblogs.com/kb342/p/3777701.html
Copyright © 2011-2022 走看看