首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行此code.Help me时将9显示为质数

在执行此code.Help me时将9显示为质数
EN

Stack Overflow用户
提问于 2014-03-17 02:10:32
回答 3查看 55关注 0票数 0

//获取2到给定范围内的质数//当内部for循环运行2号时,它将9打印为质数。

代码语言:javascript
复制
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;
         }

       }
   }

}}

EN

回答 3

Stack Overflow用户

发布于 2014-03-17 02:21:04

在第二个循环之上,保持一个标志为true,这意味着最初这个数字是一个质数。

代码语言:javascript
复制
boolean flag = true;

第二个循环条件应为d <= num/2

在第二个循环中,如果它不是质数,或者不能被一个数字整除,则返回break

代码语言:javascript
复制
if(num%d == 0)
{
    flag = false;
    break;
}

在第二个循环之外,如果标志仍然为true,则将其打印出来:

代码语言:javascript
复制
if(flag){
    System.out.println(num);
}

记住:对于大规模素数检查或生成,Sieve算法总是最好的。

票数 0
EN

Stack Overflow用户

发布于 2014-03-17 02:21:53

我有个坏消息。这个程序找到的不是质数,而是奇数: 3,5,7,9等。

票数 0
EN

Stack Overflow用户

发布于 2014-03-17 02:22:58

如果值是不可除的,则将其打印出来。从2到8的所有非质数都可以被2整除,因此它只显示质数。当number为9时,它打印9,因为9%2不是0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22440765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档