zoukankan      html  css  js  c++  java
  • HDU 2012 (水)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2012

    题目大意:给你段连续数字,判断每个数字带入函数 n^2+n+41 是否都为素数,是输入OK,否则输出Sorry

    解题思路:

    写一个判断素数的函数,然后设置一个标志 p 同时遍历这段数字,如果不是素数标志 p 改变一下病并输出 Sorry, 最后遍历结束如果标志未改变,就输出OK

    判断 num 是否为素数:如果大于 2 小于等于 √num 数中没有可以整除 num 的数就是素数,否则是合数,1 既不是素数也不是合数

    维基百科素数知识:https://zh.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0#%E7%AE%97%E8%A1%93%E5%9F%BA%E6%9C%AC%E5%AE%9A%E7%90%86

    数论基础:任何大于1的整数均可被表示成一串唯一素数之乘积

    代码:

     1 #include<iostream>
     2 #include<cmath>
     3 #include<iomanip>
     4 //#include<algorithm>
     5 using namespace std;
     6 int num;
     7 int prime(int x)
     8 {
     9     num = x * x + x + 41;
    10     if(num == 1)
    11         return 0;
    12 //    for(int i = 2; i < num; i ++)
    13 //    {
    14 //        if(num % i == 0)
    15 //            return 0;
    16 //    }
    17     for(int i = 2; i <= sqrt(num); i ++)
    18     {
    19         if(num % i == 0)
    20             return 0;
    21     }
    22     return 1;
    23 }
    24 int main()
    25 {
    26     int x, y;
    27     int p;
    28     while(cin >> x >> y && (x || y))
    29     {
    30         p = 1;
    31         for(int i = x; i <= y; i ++)
    32         {
    33             if(!prime(i))
    34             {
    35                 p = 0;
    36                 cout << "Sorry" << endl;
    37                 break;
    38             }
    39         }
    40         if(p == 1)
    41             cout << "OK" << endl;
    42     }
    43 }
  • 相关阅读:
    文件处理--文件操作
    三元运算
    alex 推荐的书
    python字符串、列表和字典的说明
    运算符
    while else语句
    格式化输出
    数据类型-元组
    数据类型-集合
    字符串
  • 原文地址:https://www.cnblogs.com/gerjcs/p/9372358.html
Copyright © 2011-2022 走看看