码迷,mamicode.com
首页 > 其他好文 > 详细

小算法笔记

时间:2014-08-03 23:02:56      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:blog   http   strong   io   for   2014   div   算法   

素数: 除 1 外只能被 1 和自身整除的数。

方法一:

#include <stdio.h>
#define N 1000
int num = 0;
int prime(int n)
{
	int i;
	if(n % 2 == 0)
		return (n == 2);
	if(n % 3 == 0)
		return (n == 3);
	if(n % 5 == 0)
		return (n == 5);
	for(i = 7; i*i <= n; ++i)
		if(n % i == 0)
			return 0;
	return 1;
}

void main()
{
	int i;
	for(i = 2; i < N; ++i)
		if(prime(i))
			printf("%-4d %d\n", ++num, i);
}

 bubuko.com,布布扣

方法二(筛选法):

#include <stdio.h>
#include <math.h>
#include <time.h>
#define N 1000
bool tag[N+1] = {0};
int num = 0;
int prime(int n)
{
	int i;
	if(n % 2 == 0)
		return (n == 2);
	if(n % 3 == 0)
		return (n == 3);
	if(n % 5 == 0)
		return (n == 5);
	for(i = 7; i*i <= n; i += 2)
		if(n % i == 0)
			return 0;
	return 1;
}
void main()
{
	clock_t tic;
	tic = clock();
	int i, v, bound;
	bound = (int)sqrt((float)N);
	for(i = 2; i <= bound; ++i)
	{
		if(!prime(i))  tag[i] = 1;
		if(!tag[i]){
			v = i + i;
			while(v <= N){
				tag[v] = 1;
				v += i;
			}
		}
	}
	for(i = 2; i <= N; ++i)
		if(!tag[i])
			printf("%-4d %d\n", ++num, i);
	printf("%d ms\n", clock()-tic);
}

 bubuko.com,布布扣

 

小算法笔记,布布扣,bubuko.com

小算法笔记

标签:blog   http   strong   io   for   2014   div   算法   

原文地址:http://www.cnblogs.com/liyangguang1988/p/3888892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!