• HDU 5391Z ball in Tina Town 数论


     题目链接:

    hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5391

    bc:  http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=616&pid=1001

    Zball in Tina Town

     
     Accepts: 356
     
     Submissions: 2463
     Time Limit: 3000/1500 MS (Java/Others)
     
     Memory Limit: 262144/262144 K (Java/Others)
    问题描述
    Tina Town 是一个善良友好的地方,这里的每一个人都互相关心。
    Tina有一个球,它的名字叫zball。zball很神奇,它会每天变大。在第一天的时候,它会变大11倍。在第二天的时候,它会变大22倍。在第nn天的时候,它会变大nn倍。
    zball原来的体积是11。Tina想知道,zball在第n-1n1天时的体积对nn取模是多大呢?
    Tina是一个蠢蠢的女孩子,当然不会算啦,所以她请你帮她算出这个答案呢。
    输入描述
    第一行一个正整数TT,表示数据组数
    接下来TT行,每行一个正整数nn,意义如题面所述
    T leq 10^5,2 leq n leq 10^9T105,2n109
    输出描述
    对于每组数据,输出一个正整数,表示答案。
    输入样例
    2
    3
    10
    输出样例
    2
    0

    题解:

      题目是叫我们求(n-1)!%n,由于n很大,所以不能直接求,先用暴力求比较小的数(1到1000),找规律,发现如果n不是质数,则结果为零,如果n为质数则结果为n-1,存在两个特例,1和4,然后就可做出来了

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 
     5 typedef long long LL;
     6 
     7 bool is_prime(int x) {
     8     for (int i = 2; i*i <= x; i++) {
     9         if (x%i == 0) return false;
    10     }
    11     return true;
    12 }
    13 
    14 int main() {
    15     int tc;
    16     scanf("%d", &tc);
    17     while (tc--) {
    18         int x;
    19         scanf("%d", &x);
    20         if (x == 1) {
    21             printf("1
    ");
    22             continue;
    23         }
    24         if (x == 4) {
    25             printf("2
    ");
    26             continue;
    27         }
    28         if (is_prime(x)) printf("%d
    ", x - 1);
    29         else printf("%d
    ", 0);
    30     }
    31     return 0;
    32 }
    View Code
  • 相关阅读:
    二分查找算法
    Python基础二(基础数据类型)
    Python基础一
    mysql 数据库
    Scrapy (网络爬虫框架)入门
    列表推导式的使用
    Scrapy(爬虫框架)中,Spider类中parse()方法的工作机制
    vim 基础命令大全
    windows cmd 命令大全
    类与类的关系一
  • 原文地址:https://www.cnblogs.com/fenice/p/5295367.html
Copyright © 2020-2023  润新知