注册 登录
编程论坛 C++教室

求素数,怎样利用ss()?

黄粽子 发布于 2021-12-20 08:55, 991 次点击
求100以内的全部素数,每行输出9个,素数之间空一个格子。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数ss(m)判断m是否为素数,当m为素数时返回1,否则返回0。
2 回复
#2
apull2021-12-20 11:51
论坛里搜一下“素数”很多的。
#3
diycai2021-12-20 13:57
程序代码:
#include <stdio.h>
#include <string.h>
#define UPPER_LIMIT        100

int ss(unsigned int value)
{
    int i, j;
    static int array[UPPER_LIMIT+1]={0}, flag=1;
    if (flag)
    {
        for (i=2; i*i<UPPER_LIMIT; i++)
        {
            if (array[i] == 0)
            {
                for (j=i*i; j<=UPPER_LIMIT; j+=i)
                {
                    array[j] = 1;
                }
            }
        }
        flag = 0;
    }
    if (value < 2 || value > UPPER_LIMIT)
    {
        return 0;
    }
    return (array[value]^1);
}
void main()
{
    int i;
    for (i=0; i<100; i++)
    {
        printf("%d %d\n", i, ss(i));
    }
}
1