前置知识
1、短除法
2、质数p的约数只有两个:1和p。
3、大于2 的质数都是奇数。
4、初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。
5、如果有两个质因数x, y大于sqrt(n),x*y > sqrt(n) * sqrt(n) = n也就是这两个数的乘积就大于n了,
所以最多有一个大于sqrt(n)的质因数。
代码
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
LARGE_INTEGER m_nFreq;
LARGE_INTEGER m_nBeginTime;
LARGE_INTEGER nEndTime;
BOOL SetConsoleColor(WORD wAttributes)
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole == INVALID_HANDLE_VALUE)
return FALSE;
BOOL bResult = SetConsoleTextAttribute(hConsole, wAttributes);
// CloseHandle(hConsole);//不能在这个位置关闭句柄
return bResult;
}
int main()
{
int num,n;
SetConsoleColor(FOREGROUND_GREEN);