//第一种方法,效率不怎么高! //计算两个整数的最大公因数的欧几里算法。 long gcd(long m, long n) { while(n != 0) { long rem = m % n; m = n; n = rem; } return m; } //求一个整数的所有素数。 void ssh_1(long m) { int k = 0; long ret; cout << m << "以内的素数如下所示:" << endl; for(int i = 1; i < m; i++) { for(k = 1; k < i; k++) { ret = gcd(i, k); if (ret != 1) { break; } } if((k == i) && (1 != i)) { cout << i << " "; } } cout << endl; } //第二种算法。比较常见 void ssh_2(long m) { int i; int k; //最小的素数为2。 for(i = 2; i <= m; i++) { for(k = 2; k < i; k++) { if (0 == i % k) { break; } } if (i == k) { cout << i << " "; } } cout << endl; }