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

📄 goldbach.c

📁 自己做的常用库和实现的数据结构。public domain.
💻 C
字号:
/* Demo of Goldbach Conjecture implementation,  * using dynamic link data structure. * * Written by Cyril Hu (cyrilhu@gmail.com), public domain. */#include<stdio.h>#include<stdlib.h>#define M 1024typedef struct pri {	int e;	struct pri *next;}P;P *t, *head;void goldbach(int x, int flag);P *get_pri(int x, int flag);int is_p(int x);void find(int x, P *head);void freelist(P *head);int main(void){	int i;	printf("4 =  2 + 2\n");	for(i=4; i<=M; i+=2) {		goldbach(i, i-4);	}	free(head);	return 0; }void goldbach(int x, int flag){	P *p;	p = get_pri(x, flag);	find(x,p);}P *get_pri(int x, int flag){	P *p;	if(is_p(x-1) != 0) {		if((p = malloc(sizeof(P))) == NULL) {			fprintf(stderr,"Fatal: mem alloc failed !!!\n");			exit(1);		}		p->e = is_p(x-1);			if(flag==0) {			head = t = p;		} else {			t->next = p;			t = p;		}		p->next = NULL;	}	return head;}int is_p(int x){	int i;	for(i=2; i<x; i++)		if(x%i==0) 			return 0;	return x;}void find(int x, P *head){	P *p, *q;	for(p=head; p->next != NULL; p = p->next)		for(q = p->next; q != NULL; q = q->next)			if(p->e + q->e == x)				printf("%d =  %d + %d\n", x, p->e, q->e);}void freelist(P *head){	P *p, *q;	for(p=head; p != NULL; p = q) {		q = p->next;		free(p);	}	head = t = NULL;}

⌨️ 快捷键说明

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