C语言编程问题,这个程序是判断素数的,但是输入2以上的数字全判断是素数,为什么?

#include<stdio.h>
int ss(int a)
{
int i,j=1;
if(a<=1)
{
return 0;
}
if(a==2);
{
return 1;
}
for(i=2;i<=a/2;i++)
{
if(a%i==0)
{
j=0;
}
}
return j;
}
void main()
{
int a;
while(1)
{
printf("Input a number:\n");
scanf("%d",&a);
if(ss(a))
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}

第1个回答  2014-09-20
if(a==2) //此处多个分号,去掉就好了
{
return 1;
}追问

太感谢了!

追答

不客气,继续努力

本回答被提问者采纳
第2个回答  2014-09-20
         if(a%i==0)
         {
             j=0;
             break; ////
          }
     }

c语言判断素数
素数是只能被1和它本身整除的正整数。要判断一个数是否为素数,可以使用试除法:从2到该数的平方根之间依次试除,如能整除,则非素数;否则是素数。以下是C语言实现判断素数的代码:c include include int isPrime(int n) { if (n < 2) return 0; \/\/ 小于2的数不是素数 int i;for (i = ...

c语言怎么判断一个数是不是素数?
1、素数的判断。根据素数定义,除了1和本身不存在其它约数的正整数为素数。所以在C语言中判断n是否为素数可以从2开始到到n-1逐一尝试,如果可以整除说明不是素数。更进一步,可以从2判断到n\/2或者n的算术平方根,如果不存在约数,那么即为素数。除此以外,判断素数的算法还有素数筛等。2、判断素数的...

C语言编写一个程序判断一个数是否为素数?急求
1、首先打开编辑器软件,在里面新的C语言文件里引入头文件并输入主函数,在主函数中输入代码:2、然后写入判断素数的逻辑,这里先引入一个scanf函数,接受用户输入的数值存入变量,对接收的变量判断其是否为素数,判断的依据是如果能被2到n-1中的某个数整除就是素数,否则就不是。最后把判断的结果打印...

C语言for循环判断素数
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。假设循环为for (i=2;i<=x;i++)如果输入x=7,i=2,2<7,然后i+1为3,之后一直...

C语言判断素数(求素数)
素数,又称质数,是除了1和它本身以外无法被其他整数整除的数字。例如17就是一个素数,因为它无法被2至16之间的任何整数整除。判断一个整数m是否为素数,只需检验m是否能被2至m-1之间的每个整数整除。若都无法整除,则m为素数。简化思路是只需检验m是否能被2至之间的每个整数整除,若都不能整除,m...

用C语言如何判断素数?
由于都不能整除,可以判定17是素数。原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m。例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可。两种思路的代码请看解析。

用C语言编写一个程序,设计一个判断素数的函数
1.素数是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;2.在数据处理时只需要判读他的因子除了1和他本身就行了,而且只用计算到 这个数的开方就行了,因为后面的因子和前面的就会倒过来。如同 24 -> 2 x 12 和 12 x 2 ...

判断素数的c语言程序是什么?
基本思想:把m作为被除数,将2—INT()作为除数,如果都除不尽,m就是素数,否则就不是。可用以下程序段实现:voidmain(){intm,i,k;printf("pleaseinputanumber:\\n");scanf("%d",&m);k=sqrt(m);for(i=2;i<k;i++)if(m%i==0)break;if(i>=k)printf("该数是素数");else printf(...

用c语言求素数
首先,一个素数不能被除1和它本身的整数整除,一般求判断a是素数,只需从2,...,a-1都不能整除a,则a就是素数了;然而,当整数>a\/2(不含a)是不可能整除a(因为商已经小于2了);所以,判断从2,...,a\/2的数都不能整除a,则a就是素数了。例如:for(i = 2; i <= a\/2; i++) {...

C语言素数的的判别式疑问
只有当从2~~~k之间没有这个数的因子的时候,for语句才能完全全部执行下去,这个时候才能是i=k+1.所以一旦i>=k+1,那就证明for语句的所有循环都执行到了,也就是没有执行if语句里的语句,也就是说在2~~~k之间没有这个数的因子,那么,这个数也就是素数了。满意请采纳!!

相似回答