判断素数
1 #include <iostream>
2 using namespace std;
3 int main()
4 {int prime(int); /* 函数原型声明 */
5 int n;
6 cout<<"input an integer:";
7 cin>>n;
8 if (prime(n))
9 cout<<n<<" is a prime."<<endl;
10 else
11 cout<<n<<" is not a prime."<<endl;
12 return 0;
13 }
14
15 int prime(int n)
16 {int flag=1,i;
17 for (i=2;i<n && flag==1;i++)
18 if (n%i==0)
19 flag=0;
20 return(flag);
21 }
22
-------------------
flag能否改成bool型???
--之前的程序里,循环时
是for (i=2;i<n/2 && flag==1;i++),导致结果里面4不是素数,其实是素数;
改为for (i=2;i<n && flag==1;i++)后,就不会出现此错误;