数学方法

Posted youngao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学方法相关的知识,希望对你有一定的参考价值。

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于数学方法的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

Android课程---Android Studio使用小技巧:提取方法代码片段

Sleep() 方法后的代码片段没有被执行

如何通过代码设置片段标签?

编写代码片段的更简洁的方法