C语言经典案例--求素数

求某个范围内的素数,如1-100

/****求素数 解法1.(先入为主思想)利用标志位来判断****/
#include <stdio.h>
#define MAX 100

void sushu(int num)
{
    int flag = 1, i=1, temp = 2;
    for(i=1; i<=num; i++)
    {
        flag = 1;    //标志位,默认每个数都是质数 
        for(temp=2; temp<i; temp++)
        {
            if(i%temp == 0)
            {
                flag = 0;    //有整除,不是质数 
                break;
            }
        }
        if(flag == 1)
        {
            printf("%d是素数..\n",i);
        }
    }
} 
int main(void)
{
    sushu(MAX);
    return 0;
}
/****求素数 解法2.缩减版,适用于求某个数是否为素数*****/
#include <stdio.h>
#define MAX 100

int sushu02(int i)
{
    int j;
    for(j=2; j*j<=i; j++)
    {
        if(i%j == 0)
        {
            return 0;    //返回0为非素数 
        }
    }
    return 1;    //返回1为素数 
}
int main(void)
{
    int temp = 0;
    for(temp=2; temp<MAX; temp++)
    {
        if(sushu02(temp) == 1)
        {
            printf("%d为素数.\n",temp);
        }
    }
    return 0;
}

 运行结果:

2为素数.
3为素数.
5为素数.
7为素数.
11为素数.
13为素数.
17为素数.
19为素数.
23为素数.
29为素数.
31为素数.
37为素数.
41为素数.
43为素数.
47为素数.
53为素数.
59为素数.
61为素数.
67为素数.
71为素数.
73为素数.
79为素数.
83为素数.
89为素数.
97为素数.

转载于:https://www.cnblogs.com/chua052/p/11389650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值