算法训练 Torry的困惑(基本型)
        【摘要】   
   时间限制:1.0s  内存限制:512.0MB   
     
   
  
   问题描述
    Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不...
    
    
    
    
    时间限制:1.0s  内存限制:512.0MB    
  
 
  
    问题描述 
  
 
  
    Torry从小喜爱数学。一天,老师告诉他,像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这个数模上50000的值。 
  
 
  
    输入格式 
  
 
  
    仅包含一个正整数n,其中n<=100000。 
  
 
  
    输出格式 
  
 
  
    输出一行,即前n个质数的乘积模50000的值。 
  
 
  
 
  
    两种方式,第二种比第一种考虑要周全,但是在蓝桥杯系统提交第一中方法已经足够的到满分了。 
  
 
  
    方法一: 
  
 
  
     
      - 
       
        
       
       
        
         import java.util.Scanner;
        
       
 
      - 
       
        
       
       
         
        
       
 
      - 
       
        
       
       
        
         public class Main {
        
       
 
      - 
       
        
       
       
        	public static void main(String[] args) {
        
       
 
      - 
       
        
       
       
        		// TODO Auto-generated method stub 
        
       
 
      - 
       
        
       
       
        
         		Scanner sc=new Scanner(System.in);
        
       
 
      - 
       
        
       
       
        			int n=sc.nextInt();
        
       
 
      - 
       
        
       
       
        
         		 caculator(n);	
        
       
 
      - 
       
        
       
       
        
         	}
        
       
 
      - 
       
        
       
       
         
        
       
 
      - 
       
        
       
       
        	private static void caculator(int n) {
        
       
 
      - 
       
        
       
       
        		// TODO Auto-generated method stub
        
       
 
      - 
       
        
       
       
        		int count =0;
        
       
 
      - 
       
        
       
       
        		 int num=2;
        
       
 
      - 
       
        
       
       
        		 int product=1;
        
       
 
      - 
       
        
       
       
        		 while (count <n){
        
       
 
      - 
       
        
       
       
         int i;
        
       
 
      - 
       
        
       
       
         for(i=2;i<num;i++){
        
       
 
      - 
       
        
       
       
         if(num%i==0){
        
       
 
      - 
       
        
       
       
         break;
        
       
 
      - 
       
        
       
       
        
          }
        
       
 
      - 
       
        
       
       
        
          }
        
       
 
      - 
       
        
       
       
         if(i==num){
        
       
 
      - 
       
        
       
       
        
          product*=num;
        
       
 
      - 
       
        
       
       
        
          count ++;
        
       
 
      - 
       
        
       
       
        
          }
        
       
 
      - 
       
        
       
       
        
          num++;
        
       
 
      - 
       
        
       
       
        
         		 }
        
       
 
      - 
       
        
       
       
        
         		 System.out.println(product%50000);
        
       
 
      - 
       
        
       
       
        
         	}
        
       
 
      - 
       
        
       
       
         
        
       
 
      - 
       
        
       
       
        
         }
        
       
 
     
     
  
    
     - 
      
       
      
      
       
        import java.util.Scanner;
       
      
 
     - 
      
       
      
      
       
        public class Main {
       
      
 
     - 
      
       
      
      
        static boolean is_prime(long n){
       
      
 
     - 
      
       
      
      
        for(int i=2;i*i<=n;i++){
       
      
 
     - 
      
       
      
      
        if(n%i==0)
       
      
 
     - 
      
       
      
      
        return false;
       
      
 
     - 
      
       
      
      
       
         }
       
      
 
     - 
      
       
      
      
        return true;
       
      
 
     - 
      
       
      
      
       
         }
       
      
 
     - 
      
       
      
      
        
       
      
 
     - 
      
       
      
      
        public static void main(String[] args) {
       
      
 
     - 
      
       
      
      
          
       
      
 
     - 
      
       
      
      
        long n;
       
      
 
     - 
      
       
      
      
       
         Scanner sc=new Scanner(System.in);
       
      
 
     - 
      
       
      
      
       
         n=sc.nextLong();
       
      
 
     - 
      
       
      
      
        int sum=0,ans=1,i=2;
       
      
 
     - 
      
       
      
      
        while(sum<n){
       
      
 
     - 
      
       
      
      
        if(is_prime(i))
       
      
 
     - 
      
       
      
      
       
         {
       
      
 
     - 
      
       
      
      
       
         ans=ans*i%50000;
       
      
 
     - 
      
       
      
      
       
         sum++;
       
      
 
     - 
      
       
      
      
       
         }
       
      
 
     - 
      
       
      
      
       
         i++;
       
      
 
     - 
      
       
      
      
       
         }
       
      
 
     - 
      
       
      
      
       
         System.out.println(ans);
       
      
 
     - 
      
       
      
      
        
       
      
 
     - 
      
       
      
      
       
         }
       
      
 
     - 
      
       
      
      
        
       
      
 
     - 
      
       
      
      
       
        }
       
      
 
    
    
  
文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。
原文链接:czhenya.blog.csdn.net/article/details/76091281
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)