关于素数的古老话题
2017-12-02 20:44
148 查看
人对素数的基本想法:
package welcome;
public class 计算机想法构造素数表 {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean [] isPrime = new boolean[100];
for(int i = 2; i < isPrime.length; i++)
{
isPrime[i] = true;
}
for(int i = 2; i < isPrime.length; i++)
{
if(isPrime[i] == true)
{
for(int k = 2; k*i < isPrime.length; k++)
{
isPrime[k*i] = false;
}
}
}
for(int i = 0; i < isPrime.length; i++)
{
if(isPrime[i])
{
System.out.print(i+" ");
}
}
System.out.println();
}
}
package welcome; import java.util.Scanner; public class 素数1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int x = in.nextInt(); boolean isPrime = true; if(x == 1) isPrime = false; for(int i = 2; i < x-1; i++) { if(x % i == 0) { isPrime = false; break; } } if(isPrime) { System.out.println("它是素数"); } else { System.out.println("它不是素数"); } System.exit(0); } }
package welcome;
import java.util.Scanner; public class 素数2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int x = in.nextInt(); boolean isPrime = true; if(x == 1 || x % 2 == 0) { isPrime = false; } else { for(int i = 3; i < Math.sqrt(x); i+=2) { if(x % i == 0) isPrime = true; } } if(isPrime) { System.out.println("它是素数"); } else { System.out.println("它不是素数"); } } }
高级一点的想法:
package welcome; public class 构造前50个素数的表 { public static void main(String[] args) { // TODO Auto-generated method stub //判断是否能被已知的素数整除 int [] primes = new int[50]; primes[0] = 2; int cnt = 1; Main_loop: for(int x = 3; cnt < primes.length; x++) { for(int i = 0; i < cnt; i++) //*****注意cnt的双重作用 { if(x % primes[i] == 0) { continue Main_loop; } } primes[cnt++] = x; //除了cnt,注意自加的妙用 } for(int k: primes) { System.out.print(k+" "); } System.out.println(); } }
package welcome;
public class 计算机想法构造素数表 {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean [] isPrime = new boolean[100];
for(int i = 2; i < isPrime.length; i++)
{
isPrime[i] = true;
}
for(int i = 2; i < isPrime.length; i++)
{
if(isPrime[i] == true)
{
for(int k = 2; k*i < isPrime.length; k++)
{
isPrime[k*i] = false;
}
}
}
for(int i = 0; i < isPrime.length; i++)
{
if(isPrime[i])
{
System.out.print(i+" ");
}
}
System.out.println();
}
}
相关文章推荐
- 关于gridview获取当前行信息的这个古老的话题。
- 宽搜 (bfs)Dungeon Master+关于素数的求解(sqrt(n))
- 一个关于STM8中断应用异常的话题
- 关于素数(持续更新)
- 关于SharePoint 2010体系架构的几个话题
- 关于SharePoint 2010体系架构的几个话题
- 非相关话题讨论:关于大峡!
- 关于激进帐户的话题
- 古老的话题:成本控制
- 关于eMule下载伤硬盘的话题(官方解释)
- 一个无关话题,关于物流运输的提醒
- 一个挺有意思的关于面试的话题
- 关于JAVA求素数
- 关于素数 的c程序
- 一个c++程序员关于跳槽话题的随想
- 话题:jQuery 关于文件上传表单处理的一个非常怪异的问题
- 关于素数打表跟判断素数的一些方法
- 一个古老的话题,共享拨号
- 关于评论话题挖掘的研究及其实现代码(一)LDA
- 关于GUID的话题