标签:
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,即不再有其他的因数。
如下:

判断思路:
对正整数n,如果用2到
之间的所有整数去除,均无法整除,则n为质数。(因为 i*i= n 时, i 时中间的那个因子)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int number, count=0/*因子数*/;
vector<int> primes;
cin >> number;
for(int i=2; i*i<=number; i++) //利用for(int i=2; i<=number; i++)求出的因子数排好了序
{
if(number%i == 0)
{
count = count+2;
primes.push_back(i);
primes.push_back(number/i); //这个里面的因子数没有排序
cout << number << ‘=‘ << i << ‘*‘ << number/i << ‘ ‘;
}
}
cout << endl;
cout << "因子数:" << count << endl;
for(int i=0; i<primes.size(); i++)
{
cout << primes[i] << ‘ ‘;
}
cout << endl;
system("pause");
return 0;
}
一种更快的判断方法:
bool isPrime(unsigned long n) { if (n <= 3) { return n > 1; } else if (n % 2 == 0 || n % 3 == 0) { return false; } else { for (unsigned short i = 5; i * i <= n; i += 6) { if (n % i == 0 || n % (i + 2) == 0) { return false; } } return true; }}
标签:
原文地址:http://www.cnblogs.com/shih/p/4624964.html