数学方法
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"); } } }
以上是关于数学方法的主要内容,如果未能解决你的问题,请参考以下文章