质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
以上. 只要把2到N-1的数全部给N除一遍, 余数全部不为0的话, 就是质数.
bool IsZhiShu(int N){
for(int b = 2; b < N; ++b)
if(N%b == 0)
return true;
return false;
}
不知道这是谁写的代码 这么拗口 也难怪看不懂 这是一个for循环下的if语句判断 for( cin>>a; b>=2; b<=a-1;) 参照标准的for语句写法 for(b=0; b>=2; b-- )我的理解是 b的初始值被赋为a , cin>>a;相当于b=a;剩下的就好理解了 b的值从a开始循环到2 每次减一 for语句如果没有括号括起来的函数体 默认执行到下一行 这是的下一行是if语句 而且其函数体范围只包括if语句 所以不用上括号 其实if语句是被包含在for语句里执行的 每次循环判断一次 至于判断是不是质数的原理 我想你应该清楚了 但是这里对质数的判断方法 我是真看不懂 不知道是不是你打错了 质数是不能被除了一和其本身外的数整除的数 按照这个逻辑 不应该取到2
得到上面大神的提示 我想了想 确实是有问题 改成
if(a%b != 0) cout << “这个不是质数”
else cout << "这个是质数"
这样应该可以了
试试改成这样:
#include
#include
using namespace std;
int main()
{
int a,b,c;
cout<<"请输入一个数:";
cin>>a;
for(b=2;b<=a;b++)
{
if(a%b==0)
break;
}
if(a==b)
cout<<"它是个质数。";
else
cout<<"它不是质数。";
system("pause");
return 0;
}
#include
bool isPrime(int number)
{
//思路:建议使用伪代码编程,然后把伪码翻译成程序语言
//先判断其是不是偶数;if是偶数且大于2则不是素数
if((number>2)&&(!(number%2)))
return false;
//else判断其能不能被比其小的奇数整除;
else{
//if找到,则不是素数,未找到则是素数
for(int i=1;i
return true;
}
}
int main(){
int number = 0;
while(cin>>number){
if(isPrime(number))cout<
return 0;
}
不用背100以内的质数