求素数的算法

简介: 素数:大于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);
} 
目录
相关文章
|
3月前
|
算法 C++ 索引
【算法】——全排列算法讲解
【算法】——全排列算法讲解
108 0
|
10月前
|
算法
初阶OI素数算法——埃拉托尼斯筛
时间复杂度比较优秀且易于理解的素数筛选法
56 0
|
5天前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
3月前
|
算法
|
3月前
|
人工智能 Kubernetes 算法
算法常见技巧 -快速幂及其相关应用
算法常见技巧 -快速幂及其相关应用
|
10月前
|
算法 C++
基本算法-欧几里德算法(辗转相除法)
基本算法-欧几里德算法(辗转相除法)
111 0
|
12月前
|
C语言
C语言练习---【求素数】(一篇带你掌握素数求解)
C语言练习---【求素数】(一篇带你掌握素数求解)
109 0
C语言练习---【求素数】(一篇带你掌握素数求解)
|
算法 Python
快速幂算法的实现
快速幂算法的实现
快速幂算法的实现
数论整理之欧几里得算法gcd
数论整理之欧几里得算法gcd
|
算法
斐波那契数列两种算法和青蛙跳台阶的两种实际问题
当我们看到这样的题时,心想就是一个简单的递归调用么。 但是,我们要看到这种算法的不足之处——效率低下。 首先简单的介绍一下 :
80 0