HDU 2012 素数判定 Java版

素数判定 java
  • 假期在看java,只看一些视频或者不上手真的不大行,刚开始做没有头绪,只好用C语言先AC再用javaAC

  • Problem Description
    对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。

  • Input
    输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

  • Output
    对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

  • Sample Input
    0 1
    0 0

  • Sample Output
    OK

  • Author
    lcy

C语言版(特别简单)

#include<bits/stdc++.h>
using namespace std;


//判断是否为素数
bool sushu(int n){

    for(int i=2;i<=sqrt(n);i++){

        if(n%i==0)
            return 0;
    }
    return 1;


}
int main(){

    int m,n;
    while(cin>>m>>n){

        if(m==0&&n==0)return 0;
        int flag=0;
        for(int i=m;i<=n;i++){
            if(sushu(i*i+i+41)==0)
            {
                flag=1;
                break;
            }

        }
        if(flag==0)cout<<"OK"<<endl;
        else cout<<"Sorry"<<endl;



    }

}

java 版

public class oj{//别忘了前面第一句的import
	
	
	  public class Inner{
		  public int sushu(int n) {
			  for(int i=2;i<=Math.sqrt(n);i++) {
				  if(n%i==0)return 0;
				  
			  }
			  return 1;
		  }
			}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int [] nums =new int [3000];
		while(in.hasNext()) {
			int m = in.nextInt();
			int n = in.nextInt();
			if(m==0&&n==0) break;
			int flag=0;
			oj o =new oj();
			Inner ii = o.new Inner();
			for(int i=m;i<=n;i++) {
				if(ii.sushu(i*i+i+41)==0)
					flag =1;
			}
			if(flag==1)
				System.out.println("Sorry");
			else 
				System.out.println("Ok");
			
			
		}
	
		
	}
		
		
	
	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值