1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //判断i是否质数,需要判断i能否被(long)sqrt(i)以内的数整除
  5. //若i能被其中一个质数整除,则i不是质数;否则i是质数
  6.  
  7. int main()
  8. {
  9. //n=10 ans=4
  10. //n=100 ans=25
  11. //n=1000 ans=168
  12. //n=10000 ans=1229
  13. //n=100000 ans=9592
  14. //n=1000000 ans=78498
  15. //n=10000000 ans=664579
  16. //n=100000000 ans=5761455
  17. long i,j,n,flag,ans=,t=;
  18. long *zhi=(long *) malloc (sizeof(long)*);
  19. scanf("%ld",&n);
  20. zhi[]=;
  21. for (i=;i<=n;i++)
  22. {
  23. //若"zhi[t]*zhi[t]==i"成立,则i不是质数,不用继续判断
  24. //且大于i的数需要用zhi[t]判断(j=0;j<t+1;j++)
  25. //这个方法比"当质数大于(long)sqrt(i)时退出"速度快
  26. //而(zhi[t]-1)*(zhi[t]-1)<=i<=n
  27. //当i小于longint范围都能实现
  28. if (zhi[t]*zhi[t]==i)
  29. {
  30. t++;
  31. continue;
  32. }
  33. flag=;
  34. for (j=;j<t;j++)
  35. if (i%zhi[j]==)
  36. {
  37. flag=;
  38. break;
  39. }
  40. if (flag)
  41. {
  42. zhi[ans]=i;
  43. ans++;
  44. }
  45. }
  46. printf("ans=%ld\n",ans);
  47. /*
  48. for (i=0;i<ans;i++)
  49. printf("%ld ",zhi[i]);
  50. printf("\n");
  51. */
  52. /*
  53. if (zhi[ans]==n)
  54. printf("%ld is a prime\n",n);
  55. else
  56. printf("%ld is not a prime\n",n);
  57. */
  58. return ;
  59. }

求n(n>=2)以内的质数/判断一个数是否质数——方法+细节优化的更多相关文章

  1. c# 判断一个数是不是质数或者求一个数的公约数的算法

    一个数是不是质数,就是判断一个数除了1和它本身还有没有其他的约数,如果有则是合数,否则是质数.其实本质都是求公约数. 求公约数是什么思路呢,就是找比它小的数不断尝试,能被整除则是其约数,否则继续尝试, ...

  2. js怎样判断一个数是质数

    1.首先了解什么是质数(即:只能被1和它本身整除的数叫质数)主要代码 /** *判断该数是否为素数 */ function isPrimeNum(num){ ; i < num/+; i++) ...

  3. c 判断水仙花数,质数(素数)

    #include<stdio.h> #include<stdbool.h> //水仙花数--各位立方和等于本身 void sXh() { int x,y,z; printf(& ...

  4. pyhton 查找一个数的所有因子 以及 判断一个数是否是质数 两个小脚本

    最近看到一个网站, 欧拉计划.挺好玩,都是一些算法题.这是本站:http://projecteuler.net/problems 这个是中文站:http://pe.spiritzhang.com/ 下 ...

  5. php实现求一个数的质数因子

    php实现求一个数的质数因子 一.总结 一句话总结:这么简单的题目,还是把变量定义的位置和自增的位置写错. 1 <?php 2 $num=trim(fgets(STDIN)); 3 //如果$n ...

  6. C语言:求n(n<10000)以内的所有四叶玫瑰数。-将字符串s1和s2合并形成新的字符串s3,先取出1的第一个字符放入3,再取出2的第一个字符放入3,

    //函数fun功能:求n(n<10000)以内的所有四叶玫瑰数并逐个存放到result所指数组中,个数作为返回值.如果一个4位整数等于其各个位数字的4次方之和,则称该数为函数返回值. #incl ...

  7. 如何判断一个数是否为素数(zt)

    怎么判断一个数是否为素数? 笨蛋的作法: bool IsPrime(unsigned n){    if (n<2)    { //小于2的数即不是合数也不是素数    throw 0;    ...

  8. [LeetCode] Prime Number of Set Bits in Binary Representation 二进制表示中的非零位个数为质数

    Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime ...

  9. (Miller Rabin算法)判断一个数是否为素数

    1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所有取模的运算对象都为整数. x^y表示x的y次方.乘方运算的优先级高于乘除和取模,加减的优先级最低. 见到x^y/z这 ...

随机推荐

  1. C-代码笔记-输入输出

    .ACSII 字符实质和整数存储方式相同 //2018年9月16日01:35:54 # include <stdio.h> int main(void) { '; // printf(&q ...

  2. 读《移山之道——VSTS软件开发指南》

    读<移山之道>这本书差不多用了一个星期的时间,感觉还是收获了一些知识的,以前只是会简单地编个小程序(虽然现在也是这样),但看过这本书之后我对软件开发这个概念的认识度有了从一片模糊到了解大体 ...

  3. Linux内核分析第八周总结

    第八章 进程的切换和系统的一般执行过程 进程调度与进程调度的时机分析 第一种分类: I/O密集型(I/O-bound):频繁的进行I/O,通常会花费很多时间等待I/O操作的完成 CPU密集型(CPU- ...

  4. 后端返回值以json的格式返回,前端以json格式接收

    以随便一个类为例子:这个例子是查询企业主营类别前5事项 一.以json数组的格式返回到前端中 (1)后端将结果绑定到param中,然后将结果以为json数组的格式返回到前端 /** * 查询企业主营类 ...

  5. 响应数据传出(springMVC)

    1.    SpringMVC 输出模型数据概述 提供了以下几种途径输出模型数据: ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据 ...

  6. 【转】STM32 独立看门狗简介

    STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种 ...

  7. Docker attach

    Description Attach local standard input, output, and error streams to a running container Usage dock ...

  8. 自己写的browse.bat与perl写的url_handler.pl的比较

    以前自己也写过Windows下自动打开多个浏览器测试某个URI,提高浏览器兼容性测试效率. 但是写的browse.bat文件还是最基础简陋的 @echo off if '%1'=='-c' ( sta ...

  9. Hadoop技术里面有BSP模型、MPI模型

    MPI模型,各种编程语言的库挺多. BSP模型,刚才知道.

  10. java List<String>的初始化

    今天在处理生成excel的时候用到了java的list,但是需要直接赋值固定的几个变量,如果先初始化然后add的方法: List<String> name = new ArrayList( ...