码迷,mamicode.com
首页 > 其他好文 > 详细

数学方法

时间:2018-10-05 20:23:36      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:输出   个数   string   util   col   content   system.in   asn   描述   

1 寻找素数

原理:若一个数不是素数则必有小于它的数为其因子。

方法:素数遍历法。遍历所有范围内整数,若当前整数不是小于自身的素数整数倍则标记为素数。

题目描述

输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

输入   输入有多组数据。每组一行,输入n。

输出 :输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没有则输出-1。

样例输入

70

样例输出

11 31 41 61

技术分享图片
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            boolean mark[]=new boolean[n+1]; //默认为false
            for(int i=0;i<=n;i++){
                mark[i]=true;//修改为默认素有数据为素数,为了后面代码好写
            }
            for(int i=2;i<n;i++){
                if(mark[i]==false){
                    continue; //下面那个for循环就不执行了
                }
                //素数的倍数为非素数,j+=i则是倍数的逐渐叠加
                for(int j=i*i;j<=n;j+=i){
                    mark[j]=false;
                }
            }
            int flag=0;//作为标记,最后一个数没有空格
            for(int i=2;i<n;i++){
                if(mark[i]&& i%10==1){
                    if(flag==0){
                        System.out.print(i);
                        flag++;
                    }else{
                        System.out.print(" "+i);
                    }
                }
            }
            if(flag==0)
                System.out.println("-1");
        }
    }
}
View Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数学方法

标签:输出   个数   string   util   col   content   system.in   asn   描述   

原文地址:https://www.cnblogs.com/youngao/p/9745643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!