user-0 提问: c语言求素数程序求改错。

回复:
user: user-1
content: Finding prime numbers - Kenneth Haugland  Different schemas for finding prime numbers explained with code http://www.codeproject.com/Articles/429694/Finding-prime-numbers

user: user-1
content: 你终其一生不看别的，只看我发的那几句话，然后倒背如流，也学不会编程。 但如果你随便照做某一句话一次，没准你就能鹤立鸡群或醍醐灌顶了。

user: user-2
content: 请参阅 数据结构树中，使用穷举法获取一个素数: 如下: http://www.maomao365.com/?p=2888

user: user-3
content: for(i=2;i <= a;i++) i不能等于a 好好看看什么是素数就知道自己错在哪里了

user: user-4
content: 引用 7 楼 zhangxiangDavaid 的回复:[quote=引用 6 楼 u014749886 的回复:] [quote=引用 3 楼 zhangxiangDavaid 的回复:] 我来回答你， 修改如下：  #include<stdio.h> int main() { 	int a, b, i; 	b = 0; 	printf("请输入你要判断的数\n"); 	scanf("%d", &a); 	//for (i = 2; i <= a; i++) 	for (i = 2; i <= a / 2; i++) 	{ 		if (a % i == 0) 		{ 			b = 1; 			break; 		} 	} 	if (b == 1) 	{ 		printf("这个数不是素数\n"); 	} 	else 	{ 		printf("这个数是素数\n"); 	} 	return 0; } i <= a / 2  厉害！而我却没想到.[/quote] 还有一个更厉害的：i <= sqrt(a);，你觉得呢？[/quote]略叼...

user: user-5
content: 赵老师这段话，我至少看过百遍

user: user-6
content: #include<stdio.h> int main(void) { 	int x, y; 	y = 2; 	printf("请输入一个数字："); 	scanf("%d", &x); 	if (x%y !=0) 		printf("%d是素数\n", x); 	if (x%y == 0) 		printf("%d是合数\n", x); 	getch(); 	return 0; } 这是我给你写的    判断合数或者素数

user: user-5
content: 引用 10 楼 弓长羊羽的回复:[quote=引用 9 楼 yajuie 的回复:] 赵老师这段话，我至少看过百遍 但很少有人真的看进去了[/quote] 引用 9 楼 yajuie 的回复:赵老师这段话，我至少看过百遍 但很少有人真的看进去了[/quote] 引用 9 楼 yajuie 的回复:赵老师这段话，我至少看过百遍 但很少有人真的看进去了[/quote] 引用 9 楼 yajuie 的回复:赵老师这段话，我至少看过百遍 但很少有人真的看进去了[/quote] 他其实说的是对的。我只是刚看完这篇帖。没有往下翻的时候我就在想。赵老师一定会往上写这么一段话。结果往下翻的时候，它已经在了。

user: user-7
content: 引用 9 楼 yajuie 的回复:赵老师这段话，我至少看过百遍 但很少有人真的看进去了

user: user-8
content: for的花括号没加。。。。。

user: user-9
content: #include<stdio.h> int main()    {      int a,b,i,j;      b=0;      printf("请输入你要判断的数\n");      scanf("%d",&a); 	 if(a==1||a==0)//要考虑到1和0          printf("这个数不是素数\n"); 	 else 	 { 		 for(i=2;i<a;i++)//是小于，而不是小于等于 			if(a%i==0) 			{ 			  b=1; 			  break; 			} 		 if(b==1) 		 { 		    printf("这个数不是素数\n"); 		 } 		else 		{ 		   printf("这个数是素数\n"); 		 }        return 0;      } }

user: user-7
content: 我来回答你， 修改如下：  #include<stdio.h> int main() { 	int a, b, i; 	b = 0; 	printf("请输入你要判断的数\n"); 	scanf("%d", &a); 	//for (i = 2; i <= a; i++) 	for (i = 2; i <= a / 2; i++) 	{ 		if (a % i == 0) 		{ 			b = 1; 			break; 		} 	} 	if (b == 1) 	{ 		printf("这个数不是素数\n"); 	} 	else 	{ 		printf("这个数是素数\n"); 	} 	return 0; }

user: user-7
content: 引用 6 楼 u014749886 的回复:[quote=引用 3 楼 zhangxiangDavaid 的回复:] 我来回答你， 修改如下：  #include<stdio.h> int main() { 	int a, b, i; 	b = 0; 	printf("请输入你要判断的数\n"); 	scanf("%d", &a); 	//for (i = 2; i <= a; i++) 	for (i = 2; i <= a / 2; i++) 	{ 		if (a % i == 0) 		{ 			b = 1; 			break; 		} 	} 	if (b == 1) 	{ 		printf("这个数不是素数\n"); 	} 	else 	{ 		printf("这个数是素数\n"); 	} 	return 0; } i <= a / 2  厉害！而我却没想到.[/quote] 还有一个更厉害的：i <= sqrt(a);，你觉得呢？

user: user-4
content: 引用 3 楼 zhangxiangDavaid 的回复:我来回答你， 修改如下：  #include<stdio.h> int main() { 	int a, b, i; 	b = 0; 	printf("请输入你要判断的数\n"); 	scanf("%d", &a); 	//for (i = 2; i <= a; i++) 	for (i = 2; i <= a / 2; i++) 	{ 		if (a % i == 0) 		{ 			b = 1; 			break; 		} 	} 	if (b == 1) 	{ 		printf("这个数不是素数\n"); 	} 	else 	{ 		printf("这个数是素数\n"); 	} 	return 0; } i <= a / 2  厉害！而我却没想到.

user: user-7
content: 同意楼上的……

user: user-1
content: 代码功能归根结底不是别人帮自己看或讲解或注释出来的；而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒：再牛×的老师也无法代替学生自己领悟和上厕所！ 单步调试和设断点调试（VS IDE中编译连接通过以后，按F10或F11键单步执行，按Shift+F11退出当前函数；在某行按F9设断点后按F5执行停在该断点处。）是程序员必须掌握的技能之一。

user: user-10
content: include<stdio.h>  int main()     {       int a,b,i;       b=0;       printf("请输入你要判断的数\n");       scanf("%d",&a);       for(i=2;i<=a;i++) //不能加等于，质数也能整除它本身          if(a%i==0)           //这个条件判断的是这个数不是质数，而不能判断这个数是质数。            {              b=1;            }          if(b==1)            {              printf("这个数是素数\n");            }          else            {              printf("这个数不是素数\n");            }          return 0;       } 改成： 我加了bool变量 #include<stdio.h>  int main()     {       int a,b,i;       bool shifou=true;       b=0;       printf("请输入你要判断的数\n");       scanf("%d",&a);       for(i=2;i<a;i++)          if(a%i==0)            {           printf("\n这个数不是质数。");           shifou=false;           break;            }          if(shifou)            {              printf("这个数是质数\n");            }          return 0;       } 我也是刚学c的，估计别人都不肯给你回答，认为太弱了。