求素数的算法

简介: 素数:大于1的自然数中,只能被1和它本身整除的数。#include#include#includeint IsPrime(int n){ int i; if(n%2==0) return 0;//如...

素数:大于1的自然数中,只能被1和它本身整除的数。

#include<stdio.h>
#include<time.h>
#include<math.h>
int IsPrime(int n){
    int i;
    if(n%2==0) return 0;//如果n是偶数
    //从3开始 因为2是素数 
    //用sqrt  到√n时就把2到n-1都判断过了
    for(i = 3;i <= sqrt(n);i+=2){//i = i + 2 也是排除偶数
        if(n%i==0) return 0;
    }
    return 1; 
}
int main(){
    int n,i;
    int t1 = clock();
    printf(" 2 "); 
    for(i = 3;i<=100000;i++){
        if(IsPrime(i)) printf(" %d ",i);
    }
    int t2 = clock();
    printf("\n运行时间:%d\n",t2-t1);
} 
目录
相关文章
|
7月前
|
算法
初阶OI素数算法——埃拉托尼斯筛
时间复杂度比较优秀且易于理解的素数筛选法
47 0
|
2天前
|
算法 数据安全/隐私保护
什么是扩展欧几里得算法?
【5月更文挑战第13天】什么是扩展欧几里得算法?
11 3
|
2天前
|
算法
|
2天前
|
人工智能 Kubernetes 算法
算法常见技巧 -快速幂及其相关应用
算法常见技巧 -快速幂及其相关应用
|
7月前
|
算法 C++
基本算法-欧几里德算法(辗转相除法)
基本算法-欧几里德算法(辗转相除法)
|
12月前
数论整理之欧几里得算法gcd
数论整理之欧几里得算法gcd
|
存储 算法 大数据
基础算法-高精度加法
为什么要使用高精度算法 C++ 每一个变量都有自己的类型,每个类型都有自己的存储长度范围。
|
算法
斐波那契数列两种算法和青蛙跳台阶的两种实际问题
当我们看到这样的题时,心想就是一个简单的递归调用么。 但是,我们要看到这种算法的不足之处——效率低下。 首先简单的介绍一下 :
69 0
|
人工智能 算法 C++
[**算法**]关于数字反转的两道例题的分析思考
两个题目看着很像,但是细节不太一样,一个是去处理浮点,(其中有用STL大法的和将小数点前后和小数点分开进行输入的还有利用字符串的读写来处理的)还有一个是去处理整数
115 0
|
算法 Python
快速幂算法的实现
快速幂算法的实现
快速幂算法的实现