⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sieve.c

📁 keil-C51完全破解版-28.7M.zip
💻 C
字号:
/*------------------------------------------------------------------------------
SIEVE.C:  Eratosthenes Sieve Prime Number Program in C from Byte Jan 1983.
------------------------------------------------------------------------------*/

#include <intrins.h>
#include <stdio.h>
#include <reg51.h>

#define TRUE 1
#define FALSE 0
#define SIZE 8190

char xdata flags[SIZE+1];

/*------------------------------------------------
------------------------------------------------*/
void main (void)  {
    register int i,k;
    int prime,count,iter;

/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
    SCON  = 0x50;                   	/* SCON: mode 1, 8-bit UART, enable rcvr    */
    TMOD |= 0x20;                   	/* TMOD: timer 1, mode 2, 8-bit reload      */
    TH1   = 221;                    	/* TH1:  reload value for 1200 baud @ 16MHz */
    TR1   = 1;                      	/* TR1:  timer 1 run                        */
    TI    = 1;                      	/* TI:   set TI to send first char of UART  */

/*------------------------------------------------
Th following code is an implementation of the 
Sieve of Eratosthenes.
------------------------------------------------*/
    printf("10 iterations\n");
    for (iter = 1; iter <= 10; iter++)	/* do program 10 times */
      {	
        P1 = iter;                      /* output iter on P1 */

	count = 0;			/* initialize prime counter */
	for (i = 0; i <= SIZE; i++)	/* set all flags true */
	  flags[i] = TRUE;
	for (i = 0; i <= SIZE; i++)
        {
	    if (flags[i])		/* found a prime */
	      {
		prime = i + i + 3;	/* twice index + 3 */
		for (k = i + prime; k <= SIZE; k += prime)
		  flags[k] = FALSE;	/* kill all multiples */
		count++;		/* primes found */
	      }
	    }
      }
    printf("%d primes.\n",count);	/* primes found in 10th pass */

    while (1);
  }


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -