zoukankan      html  css  js  c++  java
  • PTA 乙级 1013 数素数 (20分) C/C++

     今天这个题的输出形式很坑爹,难度到是没多大

    C++实现(C直接改一改输入输出就行):

     1 #include<iostream>
     2 #include<cmath>
     3 
     4 using namespace std;
     5 
     6 /*判断素数(利用平方根的方法判断)*/
     7 bool isprime(int i) {                        
     8     for (int j = 2; j <= sqrt(i); ++j) {
     9         if (i % j == 0) {
    10             return 0;
    11         }
    12     }
    13     return 1;
    14 }
    15 
    16 int main() {
    17     /*M和N*/
    18     int m = 0, n = 0;
    19     /*素数个数*/
    20     int num = 0;
    21     /*正整数*/
    22     int    con = 2;
    23     /*输出空格标志位*/
    24     int flag = 1;
    25     cin >> m >> n;            //输入
    26     while (num < n) {         //循环寻找范围内的素数
    27         if (isprime(con)) {
    28             num++;            //素数个数累加
    29             if (num <= n && num >= m) {                            //判断素数是否位于范围内
    30                 if ((num - m + 1) % 10 == 0 && num != m) {        //10个素数回车换行
    31                     cout << con << endl; flag = 0;
    32                 }
    33                 else { cout << con; flag = 1; }                
    34                 if (num == n)flag = 0;                            //最后一个数后面不输出空格
    35                 if (flag == 1)cout << " ";                        //根据标志位输出空格
    36             }
    37         }
    38         con++;                //正整数增长
    39     }
    40     return 0;
    41 }

    注意判断素数的方法,利用平方根判断不会导致运算超时(测试点4

  • 相关阅读:
    倍数求和
    最大(小)值
    数组扁平化:(多维数组 -> 一维数组)
    任意数求和
    找到重复最多项
    Linux 标准 I/O 库
    Linux文件操作函数
    Linux文件的IO操作 一
    Linux文件系统概述二
    Linux文件系统概述
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13217027.html
Copyright © 2011-2022 走看看