c语言--查找某个区间的质数

Posted 我不想平庸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言--查找某个区间的质数相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<stdlib.h>

struct int_e{
	int *p;
	int length;
};

int is_prime(int *primes,int length,int num){
 	int i;
	for(i=0;i<length;i++){
  		if(*(primes+i)){
			if(num%(*(primes+i))==0){
				return 0;
			}
		}else{
			//printf("%d--%d\n",i,*(primes+i));
			break;		}
	}
	return 1;
}



struct int_e primes(int limit){
	
	int max_num = limit/2;
	int real_num = 1,i;
	
	int *primes = (int *)malloc(max_num*sizeof(int));
	if(primes != NULL){
		printf("茅坑太大了 没有");
		//此处暂时不知道如何处理
		return;
	}
	*primes = 2;
	for(i=3;i<limit;i++){
		if(is_prime(primes,max_num,i)){
			*(primes+real_num)=i;
			real_num++;
		}
	}
	
	primes = realloc(primes,real_num*sizeof(int));
	struct int_e primes_info = {p:primes,length:real_num};
	return primes_info;
}



void main(){
	
	struct int_e primes_info = primes(1000);
	if(primes_info){
		int length = primes_info.length,i;
		int *primes = primes_info.p;
	
		printf("\n========================\n");
 		for(i=0;i<length;i++){
			printf("%d -- %d\n",i,*(primes+i));
		}
	}
}

 

以上是关于c语言--查找某个区间的质数的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程:判断某数是不是是质数

c语言判断一个数是不是为质数

c语言实践输出某个区间中不是3的倍数的偶数

c语言,查找数组中是不是存在某个数?

C语言程序(输入两个数 a b 求ab之间的质数并且输出所有质数之和)

C语言 二分法查找数组元素