确定数字是否为质数的平均情况(不适用于最佳算法)

时间:2019-02-17 15:41:35

标签: algorithm

我具有以下确定数字是否为质数的功能。我知道最好的时间复杂度是O((logN)^ 6),但是下面的算法要简单得多。我也知道它具有O(sqrt(N))的最坏情况,并且我正在尝试考虑它的平均情况复杂度。我需要答案的解释/证明。这是我的功能和测试它的基本程序:

#include <stdio.h>
#include <math.h>
int isprime(int N){
    int j;
    if(N==2){
        return 1;
    }
    for(j=2;j<=ceil(sqrt(N));j++){
        if(N%j==0){
            return 0;//false, number is not prime
        }
    }
    return 1;//true, number is prime
}
int main(){
    int i;
    for(i=2;i<100;i++){
        printf("Number: %d \t %d\n",i,isprime(i));
    }
    return 0;
}

示例在C语言中,但是我关心问题的算法部分,因此我没有在标签中包含任何编程语言的名称。

0 个答案:

没有答案