1000以内素数,如果奇数个则中间输出2*c-1;偶数个输入2*c,c语言A prime number is a counting number (1, 2, 3, ...)……

`在这里插入代码片A prime number is a counting number (1, 2, 3, …) that is evenly divisible only by 1 and itself. In this problem you are to write a program that will cut some number of prime numbers from the list of prime numbers between (and including) 1 and N. Your program will read in a number N; determine the list of prime numbers between 1 and N; and print the C2 prime numbers from the center of the list if there are an even number of prime numbers or (C2)-1 prime numbers from the center of the list if there are an odd number of prime numbers in the list.
这题当时没过是因为测评鸡数据中1是素数

#include<stdio.h>
int main(int argc, char const *argv[])
//1是素数我去你丫的
{   //骚气的把一千以内一百六十九个素数搞出来,最后一个用于结束循环
    int a[170]={1,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,101,
        103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,
        229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,
        373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,
        523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,
        691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,
        877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,10000};
    int N,C;
    while(~scanf("%d%d",&N,&C))
    {
        int count=0,i=0;
        while(1)
        {
            if(a[count]<=N)
            count++;
            else
            break; 
        }
        if(count%2==0)
        {
            if(count<=2*C)
            {
                printf("%d %d:",N,C);
                for(i=0;i<=count-1;i++)
                    printf(" %d",a[i]);
            }
            else
            {
                printf("%d %d:",N,C);
                count=count/2;
                for(i=count-C;i<count+C;i++)
                    printf(" %d",a[i]);
            }
            printf("\n\n");
        }
        else
        {
            if(count<=2*C-1)
            {
                printf("%d %d:",N,C);
                for(i=0;i<=count-1;i++)
                    printf(" %d",a[i]);
            }
            else
            {
                count=(count-1)/2;
                printf("%d %d:",N,C);
                for(i=count-C+1;i<=count+C-1;i++)
                    printf(" %d",a[i]);
            }
            printf("\n\n");

        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值