C语言设计一个程序

提问:C语言设计一个程序

设计一个程序,读取用户输入的一个整数N(N >1000, N < 10000000),输出与其最接近的一个幸运素数(1000以上且只有一位数字与其它位不同的素数,参见下页),如用户输入2017,程序输出1999

网友回答:

完整的程序参考,这个主要考核算法

#include

#include

int lpri(int n)  //判是否为幸运素数

{

    int i,x,olda1,olda2,a,ct1,ct2;

 

    if(n<1000) //1000以下不是 

       return 0; 

 

    x=n;

    olda1=n%10;

    ct1=1;

    ct2=0;

    while(n) //判断位数上的数

        {

            a=n%10;

            if (a==olda1)

                ct1++;

            else

                {

                    if (ct2==0)

                        {

                            olda2=a;

                            ct2=1;

                        }

                    else

                        {

                            if (a==olda2)

                                ct2++;

                            else

                                return 0;

                        }

                }

            n/=10;

        } //以上判只有两个数,且计算分别的计数 

    if (ct1!=1 && ct2!=1) //有一计数必为1 

        return 0;

    //以下判素数 

    for (i=2; i<=(int)sqrt(x); i++)

        if (x%i==0) return 0;

    if (i>1) return 1;

    else return 0;

}

int main()

{

    int a,t,r;

    scanf("%d",&a);

    t=a;

    while(t-->1000)  //向下找 ,可能没有 

          if (lpri(t))

             break;

    r=t;

    t=a;

    while(t++) 

    {

         if (lpri(t))

             break;

    }

    if (r==999 || a-r>t-a)   ///r=999表示向下没有 

       printf("%dn",t);

    else

       printf("%dn",r);

 

    return 0;

}

例样测试正确 

相关推荐

用C语言设计一个程序

用C语言设计一个程序

c语言设计一个3*3的数字华容道游戏?

c语言设计一个3*3的数字华容道游戏?

用c语言设计出该程序

用c语言设计出该程序

c语言如何设计程序来模拟疫情扩散?

c语言如何设计程序来模拟疫情扩散?

C语言程序设计(程序的设计思想和流程图)

C语言程序设计(程序的设计思想和流程图)

c语言书记有哪些?

c语言书记有哪些?

热血传奇武器升级的真正成功方法是什么?

下面文章可能会涉及一些基本的计算机原理 但是很简单 大家应该都会看的懂 我也是学经济的 下面的东西都是我自己实践出来。 ] 传奇是在C语言下开发的一种程序,我们已经公认

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

c语言编写程序,读入正整数n,和n个正整数,递增排序后保存在文本文件result.txt里

c语言编写程序,读入正整数n,和n个正整数,递增排序后保存在文本文件result.txt里

C语言代码SendOnePix(&ptr[(3*k)])怎么理解

C语言代码SendOnePix(&ptr[(3*k)])怎么理解

C语言中,指针函数和函数指针有什么区别?

C语言中,指针函数和函数指针有什么区别?

c语言如何去一个有序数组重复的数字

c语言如何去一个有序数组重复的数字

C语言中“?”的用法

C语言中“?”的用法

c语言里共用体的最后一次成员赋值问题求解

c语言里共用体的最后一次成员赋值问题求解

C语言中x=3,则printf("%d",x++)的输出结果是什么

C语言中x=3,则printf("%d",x++)的输出结果是什么

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1