求大神指点怎么用JAVA找出1到50范围内所有的质素。
质素就是出去1和这个数本身之外,没有其他数能被这个数整除的数字。
比如说13,17,29,41之内的。
public static void main(String[] args) {
int i, j;
for (i = 2; i <= 50; i++)
{
for (j = 2; j <= Math.sqrt(i); j++)
{
if (i % j == 0)
break;
}
if (j > Math.sqrt(i))
System.out.println(i);
}
}
public static void main(String[] args) {
// 求50以内的质数
for (int i = 2; i <= 50; i++) { // 质数
for (int k = 2; k <= i; k++) { // 除数
// 排除所有在 i=k 之前 能被k整除(余数为0)的数
if (i % k == 0 && i != k) {
break;
}
// 输出所有在 i=k 且 i%k=0的数
if (i % k == 0 && i == k) {
System.out.println(i);
}
}
}
}
依次判断一下1-50里哪个数是素数,是素数就输出
public class Test {
public boolean isPrime(int num){
if(num == 1){
return true;
}else {
for(int i = 2; i < num ; i++){
if (num % i ==0){
return false;
}
}
return true;
}
}
public static void main(String[] args) {
Test test = new Test();
int a = 50;
for(int i = 1; i < a ; i++){
boolean flag = test.isPrime(i);
if(flag)
System.out.println(i + "是质数");
}
}
}
blic static void main(String[] args) {
Test test = new Test();
int a = 50;
for(int i = 1; i < a ; i++){
boolean flag = test.isPrime(i);
if(flag)
System.out.println(i + "是质数");
}
}
}
楼上这么多答案
我还能说什么
算了不说了
但是我还是说了。。。
public class TestPrime {
public static boolean isPrime(int num) {
for(int i = 2; i <= Math.sqrt(num); i++) {//程序默认2是素数,当j=2时,循环不执行
if(num % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
for(int j = 2; j <= 50; j++) {
if(TestPrime.isPrime(j)) {
System.out.println(j + " is a prime");
}
}
}
}