赞
踩
根据质数的定义,可以知道,如果一个数所有小于他的质数都不是他的因数,那么他就是质数
#include<iostream> #include<vector> using namespace std; //key是要判断的数字,a是vector类的元素,其中保存了所有比key小的质数 bool check(int key,vector<int>& a) { for (int i = 0; i < a.size(); i++) { if (key % a[i] == 0) { return false; } } return true; } int main() { vector<int> zhishu; zhishu.push_back(2); int max;//输入的上界 cin >> max; if (max < 2) { cout << "无"; } else if (max == 2) { cout << 2 << "\n";//输出唯一的质数2 } else { for (int i = 3; i < max; i+=2) {//每次加2,因为只有奇数才可能是素数 if (check(i, zhishu)) { zhishu.push_back(i); } } } for(int i=0;i<zhishu.size();i++){ cout<<zhishu[i]; } return 0; }
#include<math.h>
bool IsPrime(int x)
{
if (1 == x)
{
cout << "1既不是质数也不是合数!" << endl;
return false;
}
for (int i = 2; i <= sqrt(x); i++)
if (x%i == 0)
{
return false;
}
return true;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。