用C语言编写一个程序,设计一个判断素数的函数

2020-06-19 综合 163阅读

1.素数是一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;

2.在数据处理时只需要判读他的因子除了1和他本身就行了,而且只用计算到 这个数的开方就行了,因为后面的因子和前面的就会倒过来。如同 24 -> 2 x 12 和 12 x 2 一样。

#include
int IsPrime(int n)  // 判断是否为素数
{
    if (n <= 1) return 0;
    if (n % 2 == 0) return n == 2; // 如果是偶数,只要不是2,其他都是非素数
    for (int i = 3; ; i += 2)
    {
        if (i > n/i) break;  // 等价于 i*i > n, 不用开方
        if (n % i == 0) return 0;
    }
    return 1;
}
int main()
{
    int i, cnt = 0;
    for (i = 1; i < 100; i++)
    {
        if (IsPrime(i))
        {
            printf("%3d ", i);
            if (++cnt%5 == 0)   // 每5个换行
                printf("\n");
        }
    }
    return 0;
}


声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com