求素数问题,按照书本的代码输入,运行时提示,求大侠解惑。
// 判断一个正整数 m 是否为素数(质数)。#include <stdio.h>
#include <stdlib.h>
#define BSSS 1
int main()
{
int m ;
int bsss ;
int pfg ;
{
while ( printf ("请输入一个正整数\n") ,\
scanf ("%d", &m ) == 0 || m<= 0 \
)
{
while ( getchar() != '\n' )
;
printf ("输入不正确\n") ;
}
}
//
{
if ( m == 2 )
{
printf ("%d是素数\n" , m );
system ("pause");
return 0 ;
}
if ( m == 1 || m % 2 == 0 )
{
printf ( "%d不是素数\n" , m );
system ( "pause" );
return 0 ;
}
}
//
{
int m_ = m , js ;
for ( pfg = 1 , js = 1 ; m_ >= 0 ; pfg ++ , js += 2 )
{
m_ -= js ;
}
}
//
{
int i ;
for ( i = 3 ; i < pfg && bsss == !BSSS ; i += 2 )
{
if ( m % i == 0)
{
bsss = !bsss ;
}
}
printf ("%d%s是素数\n", m , bsss == BSSS ? "不" : "" ) ;
system ("pause") ;
return 0 ;
}
}
运行后输入1234567回车后提示:
Run-Time Check Failure #3 - The variable 'bsss' is being used without being initialized.
另外
bsss = !bsss , bsss == !BSSS 是什么意思?
[此贴子已经被作者于2018-11-13 15:50编辑过]