zoukankan      html  css  js  c++  java
  • 20200803--第n小的质数(奥赛一本通p72 9) (2020-08-03 18:43)

    //自己的解法

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
      int n=0; //录入的数
      int s=0; //每个数可对几个数取余结果为0
      int t=0; //计数器,当t==n就停止
      cout<<"请输入第几小的质数:";
      scanf("%d",&n);
      //下行10000是上限,自己设定的
      for(int x=2;;x++)
        {
          for(int i=1;i<=x;i++)
            {
              if(x%i==0)
                {
                   s++;
                }
            }
          if(s==2)
            {
                t++;
                if (t==n)
                  { 
                     cout<<"最终结果是:"<<x;
                  }
            }
      s=0;
      }
      return 0;
    }

    //书上解法

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
      int n,i,s=0;
      scanf("%d",&n);
      for(i=2;;++i)
        {
          int x=2;
          while(x<=floor(sqrt(i))&&i%x!=0) //判断i是否为素数
            {x++;}

          if(x>floor(sqrt(i)))
            {
              s++;if(s==n)
           {
          printf("%d ",i);break;
         }
       }
      }
    return 0;
    }

    参考资料:

    C++语言有以下几种取整方法: 
        1、直接赋值给整数变量。如: 
        int i = 2.5; 或 i = (int) 2.5; 
        这种方法采用的是舍去小数部分 
        2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关。 
        3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如: 
        floor(2.5) = 2 
        floor(-2.5) = -3 
        4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如: 
        ceil(2.5) = 3 
        ceil(-2.5) = -2 
        floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。
  • 相关阅读:
    Android Facebook分享功能实现
    Facebook KeyHash生成方法
    Android 版 Facebook 登录
    在Android App中集成Google登录
    Android 应用程序集成FaceBook 登录及二次封装
    Android Facebook和Twitter登录和分享完整版
    android开发之自定义圆形ImagView
    Okhttp、Volley和Gson的简单介绍和配合使用
    Android并发编程
    重要的ui组件——Behavior
  • 原文地址:https://www.cnblogs.com/whcsrj/p/13499025.html
Copyright © 2011-2022 走看看