- //判断素数
- #include<stdio.h>
- #include<stdlib.h>
- #define BSSS 1//不是素数
- void main()
- {
- int m;
- int bsss;
- int pfg;//平方根
- //输入处理
- while(printf("请输入一个正整数:"),\\
- scanf("%d",&m)==0||m<0)
- {
- while(getchar()!='\\n')//没有这句话,不符合%d格式的字符并没有被读取,而将一直存在于输入缓冲区
- ;
- printf("输入不正确\\n");
- }
- //处理几种特殊情况
- {
- if(m==2)
- {
- printf("%d不是素数\\n",m);
- exit(1);
- }
- if(m==1||m%2==0)
- {
- printf("%d不是素数\\n",m);
- exit(1);
- }
- }
- ///求平方根的近似值,这里求的是最小的大于m平方根的整数
- {
- int m_=m,js;
- for(pfg=1,js=1;m_>=0;pfg++,js+=2)
- m_-=js;
- }
- ///判断大于2的奇数是不是素数
- {
- int i;
- bsss=!BSSS;
- for(i=3;i<pfg;i+=2)
- {
- if(m%i==0)
- {bsss=!bsss;
- break;}
- }
- }
- printf("%d%s是素数\\n",m,bsss==BSSS?"不":"");
- system("PAUSE");
- }
- //该片段来自于http://www.codesnippet.cn/detail/150820135182.html
来源: http://www.codesnippet.cn/detail/150820135182.html