解题思路:
用N从2开始除N前面的数。
如果有一个数能够被N整除,即余数为0,那么N就不是素数。
如果前面的数都不能被N整除,那么N就是素数。
思路有了,那就来实现,先定义一个flag,并初始化为1,然后弄一个for循环
如果N%i为0,把flag的值改为0,然后输出不是素数,退出循环。
如果完成了for循环,flag的值还是为1,那么N就是素数,输出是素数。
注意事项:
参考代码:
#include<iostream> using namespace std; int main() { int i, N, flag=1; //定义一个标记,并且初始化为1 cin >> N; for (i = 2; i < N; i++) //从2开始 { if (N%i == 0) //如果一个数能被N整除,那么N就不是素数 { flag = 0; //flag为0 cout << "not prime"; //输出not prime break; //退出循环 } } if (flag==1) //如果flag为1,即N为素数 cout << "prime"; //输出prime return 0; }
0.0分
6 人评分
#include<iostream> #include"cmath" #include <iomanip> using namespace std; void Judge(int a){ for (int i=2;i<=a;i++){ if(a%i==0&&a!=i) { cout << "not prime" << endl; } else if(a%i==0&&a==i){ cout<<"prime"<<endl; } } } int main(){ int a; cin>>a; if(a>1) { Judge(a); } if (a<=1){ cout<<"not prime"<<endl; } return 0; } 为什么答案错误
阿苏勒 2021-02-13 23:16:53 |
加两个break跳出for循环