zoukankan      html  css  js  c++  java
  • 求素数

    #include <iostream>
    #include <math.h>
    using namespace std;
    bool IsPrime(int n)
    {
    	int i, j;
    	
    	if (n == 2)
    	{
    		return true;
    	}
    	else if (n < 2 || n%2==0)
    	{
    		return false;
    	}
    	else
    	{
    	  	j = (int)sqrt(n + 1);
    		for (i = 3; i <= j; i = i + 2)
    		{
    			if (n % i == 0)
    			{
    				return false;
    			}
    		}
    	}
    	return true;
    }
    int PrintPrim(int n)
    {
    	assert(n >= 7);
    	unsigned int *array = (unsigned int *)malloc(n*sizeof(unsigned int));
    	assert(array != NULL);
    	
    	int k = 0;
    	array[k++] = 2;
    	array[k++] = 3;
    	array[k++] = 5;
    	array[k++] = 7;
    	for(int i=11; i<=n; i++)
    	{
    		if(i%2==0 || i%3==0 || i%5==0 || i%7==0) continue;
    		array[k++] = i;
    	}
    	
    	int iCount = 4;
    	for(int i=5; i<k; i++)
    	{
    		if(true == IsPrime(array[i])) array[iCount++] = array[i];
    	}
    	for(int i=0; i<k; i++)
    	{
    		//cout << i << ":" << array[i] << "\n";
    		cout << array[i] << "\t";
    	}
    	free(array);
    	return k;
    }
    int main(int argc, char *argv[])
    {
    	PrintPrim(1000);
    	return 0;
    }

  • 相关阅读:
    1370
    1336
    1298
    1289
    Buy Tickets(poj2828)
    The Balance(poj2142)
    1067
    Lightoj1011
    1319
    Back to Underworld(lightoj 1009)
  • 原文地址:https://www.cnblogs.com/arbboter/p/4225208.html
Copyright © 2011-2022 走看看