输出1到1000之间的所有素数

质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

思路:偶数肯定不是素数,所以递增的时候可以以奇数的形式递增,再在奇数中去掉非质数的数。

C++版:

#include<iostream>

using namespace std;
int main()
{
    cout << 3 << " ";
    for (int i = 5;i < 1000;i += 2)
    {
        int j = 0;
        for (j = 2;j<=i / 2;j++)
        {
            if (i%j == 0)
                break;
        }
        if (j - 1 == i / 2)
            cout << i << " ";
    }
    return 0;

}

C语言版:

1、遍历1到100之间所有数,由于1的特殊性,不是素数也不是合数,所以可以从2开始遍历;

2、对于每一个数,判断是否为素数;

3、如果是素数,则输出,否则继续下一个。

#include <stdio.h>
#include <math.h>
int  isPrime( int  n) //判断素数函数。
{
     int  i;
     for (i = 2; i <= ( int ) sqrt (n); i ++) //从2到算数平方根遍历。
         if (n%i == 0)  return  0; //存在约数,非素数,返回0.
     return  1; //是素数,返回1.
}
int  main()
{
     int  i;
     for (i = 2; i <= 100; i ++) //遍历。
         if (isPrime(i)) //是素数。
             printf ( "%d " , i); //输出素数。
     return  0;
}

猜你喜欢

转载自blog.csdn.net/johnny_timmy/article/details/80286632