#16500: JAVA AC


ml0427 (ml0427)

學校 : 不指定學校
編號 : 82063
來源 : [1.34.207.68]
最後登入時間 :
2023-07-20 16:51:16
a121. 質數又來囉 | From: [218.161.78.2] | 發表日期 : 2019-01-07 16:21

這題有沒有找到公式真的效能差很多。

新手,傷眼請見諒。

 

package test;

import java.util.Scanner;

public class Test {

/**
* a121: 質數又來囉
*
* @param args
*/
public static void main(String[] args) {

Scanner cin = new Scanner(System.in);

while (cin.hasNext()) {
long t1 = System.currentTimeMillis();
int inData = cin.nextInt();
int inData2 = cin.nextInt();

int sum = 0;
for (int i = inData; i <= inData2; i++) {
if (checkPrimeNumber(i)) {
// System.out.println(i);
sum++;
}
}

System.out.println(sum);
long t2 = System.currentTimeMillis();
System.out.println(t2 - t1);
sum = 0;

}
cin.close();
}

// 嘗試從2到開根號N的整數是否整除N。
// 參考如下
// https://tw.answers.yahoo.com/question/index?qid=20070920000016KK09911
// https://zh.wikipedia.org/wiki/%E7%B4%A0%E6%80%A7%E6%B5%8B%E8%AF%95
// http://www.csie.ntnu.edu.tw/~u91029/Prime.html

// 例:判別101是否為質數
// 根號101接近10
// 所以小於10的質數,2、3、5、7如果不能整除101
// 則101為質數
public static boolean checkPrimeNumber(int inData) {

if (inData == 1) {
return false;
} else if (inData == 2 || inData == 3 || inData == 5) {
return true;
}

if (inData % 2 == 0 || inData % 3 == 0 || inData % 5 == 0) {
return false;
}

for (int i = 7; i <= Math.sqrt(inData); i = i + 2) {
if (inData % i == 0) {
return false;
}
}
return true;
}

}

 
#16501: Re:JAVA AC


ml0427 (ml0427)

學校 : 不指定學校
編號 : 82063
來源 : [1.34.207.68]
最後登入時間 :
2023-07-20 16:51:16
a121. 質數又來囉 | From: [218.161.78.2] | 發表日期 : 2019-01-07 16:24

剛剛忘記把抓系統時間的code拿掉...
 
 
 
package test;
 
import java.util.Scanner;
 
public class Test {
 
/**
* a121: 質數又來囉
* @param args
*/
public static void main(String[] args) {
 
Scanner cin = new Scanner(System.in);
 
while (cin.hasNext()) {
int inData = cin.nextInt();
int inData2 = cin.nextInt();
 
int sum = 0;
for (int i = inData; i <= inData2; i++) {
if (checkPrimeNumber(i)) {
// System.out.println(i);
sum++;
}
}
 
System.out.println(sum);
sum = 0;
 
}
cin.close();
}
 
// 嘗試從2到開根號N的整數是否整除N。
// 參考如下
// https://tw.answers.yahoo.com/question/index?qid=20070920000016KK09911
// https://zh.wikipedia.org/wiki/%E7%B4%A0%E6%80%A7%E6%B5%8B%E8%AF%95
// http://www.csie.ntnu.edu.tw/~u91029/Prime.html
 
// 例:判別101是否為質數
// 根號101接近10
// 所以小於10的質數,2、3、5、7如果不能整除101
// 則101為質數
public static boolean checkPrimeNumber(int inData) {
 
if (inData == 1) {
return false;
} else if (inData == 2 || inData == 3 || inData == 5) {
return true;
}
 
if (inData % 2 == 0 || inData % 3 == 0 || inData % 5 == 0) {
return false;
}
 
for (int i = 7; i <= Math.sqrt(inData); i = i + 2) {
if (inData % i == 0) {
return false;
}
}
return true;
}
 
}

 

 
 
ZeroJudge Forum