求质数

以下只是简单的质数求法,另外想提高效率可以尝试过滤的方法。

/**功能:查找100以内的所有质数。 答案:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 
 * 概念:1既不是质数也不是合数,质数只能够被1和它本身整除,
 * 算法:2是最小的质数,因此判断一个数i是不是质数,可以将该数除以j(2<=j<i等).如果i不能被j整除,则i是质数;否则i不是质数。
 * 另外除2以外的偶数都不是质数,因为2是这些偶数的质因数。设n=a*b,若a>=sqrt(n),则b<=sqrt(n),即任意合数n可以转换为两个因数的乘积,
 * 其中一个数大于等于sqrt(n),另一个小于等于sqrt(n)。
 * 此算法中至少应有2个循环,一个用来实现i从1到100的计数,另一个用来实现除数j的计数。我们用一个标记flag来反应i能否被j整除(flag=i%j)。
 */


package project1;


public class PrimeNumber {
      public static void main(String[] args) {
int i,j,flag=1;
//算法1:(2<=j<i)
for(i=2;i<=100;i++){     //1不是质数,从2遍历到100
  for(j=2;j<i;j++){     //加上限制条件,让i=3开始才能执行第2个循环,i=2时直接输出
  flag=i%j;           
  if(flag==0)       //一旦发被j整除,退出内循环,转到外循环   
  break;
  }
  if(flag!=0)           //i不能被j整除,输出i
  System.out.print(i+" ");
}
//算法2:(2<=j<=i/2)
System.out.println();
flag=1;
for(i=2;i<=100;i++){     //1不是质数,从2遍历到100
  for(j=2;j<=i/2;j++){     //加上限制条件,让i=3开始才能执行第2个循环,i=2时直接输出
  flag=i%j;           
  if(flag==0)       //一旦发被j整除,退出内循环,转到外循环   
     break;
 }
 if(flag!=0)           //i不能被j整除,输出i
 System.out.print(i+" ");
}
//算法3:(2<=j<=Math.sqrt(i))
System.out.println();
flag=1;
for(i=2;i<=100;i++){     //1不是质数,从2遍历到100
  for(j=2;j<=Math.sqrt(i);j++){     //加上限制条件,让i=3开始才能执行第2个循环,i=2时直接输出
      flag=i%j;           
  if(flag==0)       //一旦发被j整除,退出内循环,转到外循环   
    break;
 }
 if(flag!=0)           //i不能被j整除,输出i
 System.out.print(i+" ");
}
//算法4:(排除2以外的偶数,且2<=j<=Math.sqrt(i))
System.out.println();
flag=1;
System.out.print(2+" ");  //先将2输出
for(i=3;i<=100;i+=2){     //除2以外的偶数都不是质数,设计步长为2,只查找奇数 
  for(j=2;j<=Math.sqrt(i);j++){     //加上限制条件,让i=3开始才能执行第2个循环,i=2时直接输出
  flag=i%j;           
  if(flag==0)       //一旦发被j整除,退出内循环,转到外循环   
  break;
  }
  if(flag!=0)           //i不能被j整除,输出i
  System.out.print(i+" ");
}
}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
bittiger北美职白皮书是一本关于在北美地区职的指南和参考资料。它为职者提供了丰富的信息和实用的建议,帮助他们更好地了解北美职市场的要和流程。 白皮书中首先介绍了北美职市场的概况,包括就业前景、行业趋势和人力资源政策等方面的信息。这些内容帮助职者了解就业市场的背景和趋势,为他们的职决策提供有益的参考。 随后,白皮书列出了北美职所需的核心技能和教育背景。它详细描述了各个行业的主要职位和所需的技能要,从而帮助职者对自己的职业发展方向做出明确的规划。此外,白皮书还推荐了一些在北美受欢迎的技术和职业认证,以提高职者的竞争力。 白皮书还包括了北美职的核心要素,如简历编写、面试技巧和职业发展建议等。它提供了实用的建议和参考样本,帮助职者更好地准备面试并提升自己的职能力。 最后,白皮书还提供了一些北美职成功的案例和实践经验。这些案例让职者了解成功职者的经历和故事,从中获得灵感和启示,进一步提高他们的职技巧和自信心。 总的来说,bittiger北美职白皮书是一本为北美职者提供综合指导的资料。它帮助职者了解北美职市场概况、核心技能要职要素和成功经验,从而提高他们的竞争力并成功地找到理想的工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值