码迷,mamicode.com
首页 > 其他好文 > 详细

题——质数、因子

时间:2015-07-06 19:25:40      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

质数(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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!