如何求一个数组中的数是否为质数(素数)

今天研究了一下求1-100之内素数的方法,花了一个多小时,为便以后研究记录下来。

方法1:

 

//利用筛法查找质数(素数) 
#include "stdio.h"
#include "math.h"
int main()
{
	int a[100];
	int i,newp;
	//在数组中加入一百个数 
	for(i=0;i<100;i++)
	{
		a[i]=i+1;
	}
	//将所有不是质数的数置为零,1不是质数将其置为0。
	a[0]=0;
	//质数的倍数一定不为质数,在数字2-sqrt(n)(sqrt(n)函数的作用是求n的开方数)的范围内找出所有质数的倍数将其置为0
	for(newp=1;a[newp]


//方法2:这种方法比较简单,就是看2到该数减去1之内的数能否被该数整除
#include "stdio.h"
int main()
{
	int a[100];
	int i,j,flag;
	for(i=0;i<100;i++)
	{
		a[i]=i+1;
	}
	//取出2-a[99]中的数进行判断 
	for(i=1;a[i]<101;i++)
	{
		flag=1;
		for(j=2;j
 
//方法3 与方法2不同的是看2到该数的开方数范围内的数能否被该数整除

#include "stdio.h"
#include "math.h"
int main()
{
	int a[100];
	int i,j,t;
	for(i=0;i<100;i++)
	{
		a[i]=i+1;
	}
	for(i=1;i<100;i++)
	{
		t=sqrt(a[i]);
		for(j=2;j


 

你可能感兴趣的:(数据结构与算法)