求n(n>=2)以内的质数/判断一个数是否质数——方法+细节优化
#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)以内的质数/判断一个数是否质数——方法+细节优化的更多相关文章
- c# 判断一个数是不是质数或者求一个数的公约数的算法
一个数是不是质数,就是判断一个数除了1和它本身还有没有其他的约数,如果有则是合数,否则是质数.其实本质都是求公约数. 求公约数是什么思路呢,就是找比它小的数不断尝试,能被整除则是其约数,否则继续尝试, ...
- js怎样判断一个数是质数
1.首先了解什么是质数(即:只能被1和它本身整除的数叫质数)主要代码 /** *判断该数是否为素数 */ function isPrimeNum(num){ ; i < num/+; i++) ...
- c 判断水仙花数,质数(素数)
#include<stdio.h> #include<stdbool.h> //水仙花数--各位立方和等于本身 void sXh() { int x,y,z; printf(& ...
- pyhton 查找一个数的所有因子 以及 判断一个数是否是质数 两个小脚本
最近看到一个网站, 欧拉计划.挺好玩,都是一些算法题.这是本站:http://projecteuler.net/problems 这个是中文站:http://pe.spiritzhang.com/ 下 ...
- php实现求一个数的质数因子
php实现求一个数的质数因子 一.总结 一句话总结:这么简单的题目,还是把变量定义的位置和自增的位置写错. 1 <?php 2 $num=trim(fgets(STDIN)); 3 //如果$n ...
- C语言:求n(n<10000)以内的所有四叶玫瑰数。-将字符串s1和s2合并形成新的字符串s3,先取出1的第一个字符放入3,再取出2的第一个字符放入3,
//函数fun功能:求n(n<10000)以内的所有四叶玫瑰数并逐个存放到result所指数组中,个数作为返回值.如果一个4位整数等于其各个位数字的4次方之和,则称该数为函数返回值. #incl ...
- 如何判断一个数是否为素数(zt)
怎么判断一个数是否为素数? 笨蛋的作法: bool IsPrime(unsigned n){ if (n<2) { //小于2的数即不是合数也不是素数 throw 0; ...
- [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 ...
- (Miller Rabin算法)判断一个数是否为素数
1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所有取模的运算对象都为整数. x^y表示x的y次方.乘方运算的优先级高于乘除和取模,加减的优先级最低. 见到x^y/z这 ...
随机推荐
- AnyProxy做App网络流量测试
前言: AnyProxy是一个开放式的HTTP代理服务器.Github主页:[https://github.com/alibaba/anyproxy]主要特性包括: 基于Node.js,开放二次开发能 ...
- taro之React Native 端开发研究
初步结论:如果想把 React Native 集成到现有的原生项目中,不能使用taro的React Native 端开发功能(目前来说不能实现,以后再观察). RN开发有2种模式: 1.一是原生A ...
- 关于Runtime error
别人说的,但我感觉是因为你的操作是不符合语言规定的,让编译器无法识别,运行不出
- 2016-03-22 OneZero团队 Daily Scrum Meeting
会议时间: 2016-03-22 9:33-9:57am 会议内容: 一.在原有Sprint Backlog基础上,我们加了亮点(摇一摇功能:随机选取一条记录在界面显示,以提醒主页君回忆) 需求分析图 ...
- Opentsdb分布式安装
Opentsdb分布式安装 --李琦 1.下载文件上传到虚拟机 -rw-r--r--. 1 root root 76793860 Apr 27 10:56 opentsdb-2.2.0.tar ...
- Leetcode 546. Remove Boxes
题目链接: https://leetcode.com/problems/remove-boxes/description/ 问题描述 若干个有序排列的box和它们的颜色,每次可以移除若干个连续的颜色相 ...
- vue props 用法(转载)
前面的话 组件接受的选项大部分与Vue实例一样,而选项props是组件中非常重要的一个选项.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props ...
- 现代程序设计 homework-02
首先显示博客要求: 描述在这么多相似的需求面前, 你怎么维护你的设计 (父类/子类/基类, UML, 设计模式, 或者其它方法) 让整个程序的架构不至于崩溃的? 建议从后往前来搞,比如我通读一遍需求 ...
- maven 总结
- 查询部门----返回给前台TreeView数据格式的数据
实体类: public class AddressTreeDto { private Long id; private String text;//位置名称 private Long pId;//上一 ...