其实,找一个质数,很简单啊,就是全部遍历一次嘛,
但是!
我们这里讲一下,快速求解的办法好吧!
对于给定的一个数,求解这个数内的所有质数!
首先,对于一个数n,只要它根号n内的数,不能整除它,那么它就肯定是zh质数,因为这个是乘法交换律,ab=ba,哈哈哈
然后呢,我们对于N个数内,我们可以直接pai’排除点,前面基数的倍数,
代码如下:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
#define N 1000
int main() {
int i, j;
int prime[N + 1];
//对N内数进行标记,其实,也可以反标记,这样就不用初始化了;
for (i = 2; i < N; i++) {
prime[i] = 1;
}
for (i = 2; i*i <= N; i++) {
if (prime[i] == 1) {
for (j = 2 * i; j <= N; j++) {
//检验这个数 J 是不是质数; 顺带把I的倍数全部干掉,这个很有意思,for循环是反着的
if (j%i == 0) {
prime[j] = 0;
}
}
}
}
//输出内容,N内的质数;
for (i = 2; i < N; i++) {
if (prime[i] == 1) {
cout << i << endl;
}
}
cout << endl;
system("pause");
return 0;
}