#include <stdio.h>
#include <stdlib.h> //判断i是否质数,需要判断i能否被(long)sqrt(i)以内的数整除
//若i能被其中一个质数整除,则i不是质数;否则i是质数 int main()
{
//n=10 ans=4
//n=100 ans=25
//n=1000 ans=168
//n=10000 ans=1229
//n=100000 ans=9592
//n=1000000 ans=78498
//n=10000000 ans=664579
//n=100000000 ans=5761455
long i,j,n,flag,ans=,t=;
long *zhi=(long *) malloc (sizeof(long)*);
scanf("%ld",&n);
zhi[]=;
for (i=;i<=n;i++)
{
//若"zhi[t]*zhi[t]==i"成立,则i不是质数,不用继续判断
//且大于i的数需要用zhi[t]判断(j=0;j<t+1;j++)
//这个方法比"当质数大于(long)sqrt(i)时退出"速度快
//而(zhi[t]-1)*(zhi[t]-1)<=i<=n
//当i小于longint范围都能实现
if (zhi[t]*zhi[t]==i)
{
t++;
continue;
}
flag=;
for (j=;j<t;j++)
if (i%zhi[j]==)
{
flag=;
break;
}
if (flag)
{
zhi[ans]=i;
ans++;
}
}
printf("ans=%ld\n",ans);
/*
for (i=0;i<ans;i++)
printf("%ld ",zhi[i]);
printf("\n");
*/
/*
if (zhi[ans]==n)
printf("%ld is a prime\n",n);
else
printf("%ld is not a prime\n",n);
*/
return ;
}

求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. 解决Jira和Confluence访问打开越来越缓慢问题

    Jira和Confluence部署在同一台服务器上,跑一段时间后,发现访问jira和confluence时,打开越来越缓慢.这是因为根据主机物理内存不同,默认的java虚拟机内存也会不同(一个较低值) ...

  2. JAVA中使用MD5加密实现密码加密

    1.新建Md5.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package c ...

  3. 2016.3.24 OneZero站立会议

    会议时间:2016.3.24 15:35-15:55 会议成员:王巍 夏一名 冉华 张敏 会议内容: 1.确立UI界面原形(见http://www.cnblogs.com/zhangminss/p/5 ...

  4. 对我们最常用的软件QQ的看法

    QQ聊天软件是我使用的第一款聊天软件,早在我上小学6年级的时候就开始接触这款软件了,可以说是陪伴我最久的一款软件. 相对于其他的聊天软件,QQ更加的方便,使用简单,界面也好操作,所以我爱上了这款软件. ...

  5. easyUI中numberbox的校验

    例:两个numberbox(A,B),其中两个都为必填项,要求在文本框显示红色,来显示其是必填项,其中只有当A填完之后,在能允许B进行填写,否则给出提示框,并清空其中的数据 <!DOCTYPE ...

  6. 《Linux内核分析》第五周笔记 扒开系统调用的三层皮(下)

    扒开系统调用的三层皮(下) 一.给menuOS增加time和time-asm 通过内核调试系统调用.将上次做的实验加入到menusOS,变成menusOS里面的两个命令. 1 int Getpid(i ...

  7. Cocos2d-x项目创建方式

    刚接触cocos2d-x的时候,还只有2.x版本,尝试着将cocos2d-x项目创建功能加入到vs里面去,后来,引擎用Python封装好了好多个脚本文件,其中就包括create_project.py文 ...

  8. Junit4使用实验报告

    一.题目简介 Junit4的使用及求和测试. 二.源码的github链接 https://github.com/bjing123/test-/blob/master/Arithmetic.txt ht ...

  9. 数组 this.setData快捷赋值

    let list=this.data.list; let listString = `{"list[${index}].sliderSure":${!list[index].sli ...

  10. SAP字体调节大小

    登陆SAP 之后,菜单下面一行,最右边的那个彩色按钮(SAP GUI),点击“选项”-可视设计-字体设计-固定狂赌字体设计,点击:选择字体 即可.