ALGO-51 Torry的困惑(基本型)

算法训练 Torry的困惑(基本型)

时间限制:1.0s   内存限制:512.0MB

问题描述

  Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。

输入格式

  仅包含一个正整数n,其中n<=100000。

输出格式

  输出一行,即前n个质数的乘积模50000的值。

样例输入

1

样例输出

2

思路:打印质数表,同余模处理。
import java.util.Scanner;

public class Main {
    static int mod = 50000;
    static final int N = 1500000;
    static boolean isPrime[] = new boolean[N + 10];
    static int prim[] = new int[150000];

    static int prime() {
        int num = 0;
        for(int i=0; i<isPrime.length; i++) {
            isPrime[i] = true;
        }
        isPrime[0] = isPrime[1] = false;
        for (int i = 2; i <= N; i++) {
            if (isPrime[i])
                prim[num++] = i;
            for (int j = 0; j < num; j++) {
                if (i * prim[j] > N)
                    break;
                isPrime[i * prim[j]] = false;
                if (i % prim[j] == 0)
                    break;
            }
        }
        return num;
    }

    static void pre() {
        prime();
        for(int i=1; i<100000; i++) {
            prim[i]=(prim[i-1]%mod*prim[i]%mod)%mod;
        }
    }
    public static void main(String[] args) {
        pre();
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            int n = sc.nextInt();
            System.out.println(prim[n-1]);
        }
        sc.close();
    }
}
时间: 2024-11-05 17:25:36

ALGO-51 Torry的困惑(基本型)的相关文章

蓝桥杯 算法训练 Torry的困惑(基本型)(水题,筛法求素数)

算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100

1501131824-蓝桥杯-算法训练 Torry的困惑(基本型)

算法训练 Torry的困惑(基本型) 时间限制:1.0s   内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100

C语言 &#183; Torry的困惑(基本型)

问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100000. 输出格式 输出一行,即前n个质数的乘积模50000的值. 样例输入 1 样例输

Torry的困惑(基本型) ---蓝桥杯

问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100000. 输出格式 输出一行,即前n个质数的乘积模50000的值. 样例输入 1 样例输

算法训练 Torry的困惑(基本型)

问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7--这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000--个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100000. 输出格式 输出一行,即前n个质数的乘积模50000的值. 样例输入 1 样例输

Torry的困惑(基本型)

1 #include <cstdio> 2 3 #include <cmath> 4 using namespace std; 5 6 bool isprime(int x) 7 { 8 int i; 9 for(i=2;i<=sqrt((double)x);i++) 10 { 11 if(x%i==0) 12 return false; 13 } 14 return true; 15 } 16 int main() 17 { 18 int n,i,cn,cj; 19 whi

Torry的困惑

import java.util.*; public class Torry的困惑 { // 常量,为了表示2-1000000这个范围 static int length = 1000000; // A[0]不用,下标代表的就是2-1000000之间的某个数 static int num[] = new int[1000000+ 1]; // 定义 范围内素数个数的长度 static int[] primes = new int[100001]; static { Primes(); } pri

算法训练 Torry的困惑

问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000……个质数的乘积是多少呢?他把这个问题告诉老师.老师愣住了,一时回答不出来.于是Torry求助于会编程的你,请你算出前n个质数的乘积.不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值. 输入格式 仅包含一个正整数n,其中n<=100000. 输出格式 输出一行,即前n个质数的乘积模50000的值. 样例输入 1 样例输

蓝桥杯算法训练&lt;二&gt;

一.最小乘积(基本型)[这个题需要认真阅读试题,内容量较大,刚开始的时候,由于练习系统上给出的输入输出的格式有问题,没看懂,最后在MikCu的博客上看到了正确的格式,参考了代码,最终得到正确的结果.为了让结果最小,可以先分别对两组数进行排序,然后对其中的一组数据逆序,逆序后,把两组数据最大的与最小的相乘,最后求得的和最小!] 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4