//获取2到给定范围内的质数//当内部for循环运行2号时,它将9打印为质数。
import java.util.*;
import java.io.*;
class A
{
public static void main(String args[])
{
System.out.println("Enter the number till which the prime number is to be printed:");
Scanner sc = new Scanner(System.in);
int limit = sc.nextInt();
System.out.println("Printing the prime numbers from 1 to "+limit);
for(int num =2; num<=limit; num++)
{
for(int d=2; d<=num; d++)
{
if(num%d == 0)
{
break;
}
if()
{
System.out.println(num);
break;
}
}
}}}
发布于 2014-03-17 02:21:04
在第二个循环之上,保持一个标志为true,这意味着最初这个数字是一个质数。
boolean flag = true;第二个循环条件应为d <= num/2
在第二个循环中,如果它不是质数,或者不能被一个数字整除,则返回break。
if(num%d == 0)
{
flag = false;
break;
}在第二个循环之外,如果标志仍然为true,则将其打印出来:
if(flag){
System.out.println(num);
}记住:对于大规模素数检查或生成,Sieve算法总是最好的。
发布于 2014-03-17 02:21:53
我有个坏消息。这个程序找到的不是质数,而是奇数: 3,5,7,9等。
发布于 2014-03-17 02:22:58
如果值是不可除的,则将其打印出来。从2到8的所有非质数都可以被2整除,因此它只显示质数。当number为9时,它打印9,因为9%2不是0。
https://stackoverflow.com/questions/22440765
复制相似问题