构建素数表判断素数

构建素数表判断素数

这个对于一般的学生来说就有点复杂了,这里面用到的知识点有很多可以学习的地方,我自己也是在翁凯老师那里学的,这可不是我自己想的,别乱说啊😄

如果看不懂可以私信我

#include<stdio.h>
int isprime ( int x ,int k[] ,int f);
int main (void)
{
    const int number = 10 ;//这里的number是常量,所以可以用来定义数组,这个十是十个素数的意思
    int prime[number] = {2};//构造素数表,初始化为2,因为2是已知的第一个素数
    int count = 1 ;//count是素数表里面的素数的个数,也可以说是位置,如count=1代表的是2,count=2代表的是3
    int i = 3 ;//因为初始值是2 ,所以直接从3开始来测试是不是素数,是素数的进入素数表

    {//这个只是为了输出好看,输出表头
        int i ;
        printf ("\t\t\t\t\t");
        for ( i = 0 ; i < number ; i ++ ){
            printf ("%d\t",i);
        }
        printf ("\n");
    }
    
    while (count < number ){
        if ( isprime ( i , prime , count ))//测试i是不是素数,
        {
            prime[count++] = i ;//如果i是素数的的话,就把i加到prime数组的下一个位置上去
        }

        {//调试,在这个大括号里面的定义的变量,是不会影响到外面的程序的
            printf ("i = %d \tcnt = %d \t",i , count );//这个里面的i是外面的那个i,C99用法
            int i ;//这个i和程序前面的那个i没有任何关系
            for ( i = 0 ; i < number ; i ++ ){//遍历prime数组,把数组里面的数都输出
                printf ("%d\t",prime[i]);
            }
            printf ("\n");
        }//调试

        i ++ ;
    }
    for ( i = 0 ; i < number ; i ++ ){
        printf ("%d",prime[i]);
        if ( ( i + 1 ) % 5 )
            printf ("\t");
        else
            printf ("\n");
    }
    return 0;
}

int isprime(int x ,int k[] ,int f)
{
    int ret = 1 ;
    int i ;
    for ( i = 0 ; i < f ; i ++ ){
        if ( x % k [i] == 0 ){
            ret = 0 ;
            break ;
        }
    }
    return ret ;
}

 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值