zoukankan      html  css  js  c++  java
  • PAT B1013 数素数

    输入样例:

    5 27
    
     

    输出样例:

    11 13 17 19 23 29 31 37 41 43
    47 53 59 61 67 71 73 79 83 89
    97 101 103

    解题思路:

    从2开始查找,如果查找的数的个数在n到m之间就输出,并且需要一个计数器来计算输出数的个数,如果个数是10的整数倍,就输出换行。

    #include<iostream>
    #include<cmath>
    
    using namespace std;
    
    bool IsPrime(int n) {
        if (n <= 3) {
            return n > 1;
        }
        // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型 
        int k = (int)sqrt((double)n);
        int i;
        for (i = 2; i <= k; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        // 如果完成所有循环,那么m为素数
        return true;
    }
    
    int main() {
    
        int n, m;//开始数和结束的数
        cin >> n >> m;
    int count = 0;//用于计算素数的个数 int flag = 0;//计数器,用于判断输出数的个数 for (int i = 2;;i++) { if (IsPrime(i)) { //如果当前数是质数 count++;
    if (count >= n&&count <= m) { //如果质数的个数在范围内就输出 flag++; if (count == m) { //最后一个数据,不输出空格 printf("%d", i); break; } if (flag % 10 == 0) { //10个数字为一行 printf("%d ", i); } else { printf("%d ", i); } } else if (count > m) { break; } } } system("pause"); return 0; }
  • 相关阅读:
    C
    数论::整除分块
    洛谷P1262 间谍网络
    洛谷P1649 【[USACO07OCT]障碍路线Obstacle Course】
    HDU2066dijkstra模板题
    Captain Flint and Treasure
    CodeForces
    CodeForces
    HDU-1827
    HDU 1811
  • 原文地址:https://www.cnblogs.com/syq816/p/12584819.html
Copyright © 2011-2022 走看看