编程求出自然数101-205中的所有素数
解决方案 »
- 这是什么问题?
- 做了一段时间的JAVAWEB不知道要朝哪方面发展了。。
- 如何设置JTabbedPane为透明,或者如何设置JPanel为透明
- javascript按钮打不开了
- java编写图片浏览器问题
- JOptionPane.class.getField(str).getInt(null) 是什么意思
- 在JCREATOR中编译通过,却不能够调试 ,出错:Exception occurred: java.lang.ClassNotFoundException
- java的正则表达式的问题.
- 如何在java文本域里任意确定写入(光标)位置,要交了,还无进展:(
- 请高人指教~!
- 怎样实现JTable或JScrollPane实现水平滚动控制?
- 工程发布 高分帮忙?
public class panel { static final int length = 101; public static void main(String[] args) {
// 101-205
Random r = new Random();
int i = r.nextInt(205)+length;
}
}
给个简单算法
对于数a,如果2到a的平方根没有一个数能被a整除,那么a就是整数.
for(int i=101;i<=205;i++){
int j=(int)(Math.sqrt(i));
boolean zs=true;
for(int s=2;s<=j+1;s++){
if(i%s==0){
zs=false;
break;//这个i不是质数
}
} if(zs)//质数
System.out.println(i);
}
public class TestTest2 {
public static void main(String[] args){
for(int i=101;i<150;i+=2){
boolean flag = false;
for(int j=2;j<i;j++){
if(i%j==0){
flag = true;
break;
}
}
if(flag){continue;}
System.out.println("i = "+i);
}
}
}其实可以将j的最大值设为i的平方根。
class Test{
public static void getNumber()
{
for(int i=102;i<=205;++i)
{
boolean flag = true;
for(int j=2;j<i;++j)
{
//合数
if(i%j==0)
{
flag = false;
break;
}
}
if(flag){
flag = false;
System.out.print(i+" ");
}
}
}
public static void main(String[] args) {
getNumber();
}
}
for(int j=2;j<i/2;j++)
写程序就要发挥计算机的优势,不能只从数学原理上来考虑。 本算法如下:
定义一个 boolean 数组,下标就是待判断的整数。
2 是第一个素数;
从 2 开始,把所有的 2 的倍数都清掉(设置为 true)。
找到下一个素数(就是数组中为 false 的元素)。
从这个素数开始,把所有它的倍数都清掉。
重复以上步骤,直到把指定范围内所有的合数(非素数)都清掉。
从 205 向 101,查找到最大的那个素数。
*/
public class TestPrime { public static void main(String[] args) {
int from = 101;
int to = 205;
boolean[] a = new boolean[to+1];
for (int i=2; i<=to; i++) {
if (!a[i]) {
for (int j=i+i; j<=to; j+=i) {
a[j] = true;
}
}
} for (int i=to; i>=from; i--) {
if (!a[i]) {
System.out.println("Prime: " + i);
break;
}
}
}}
public class Prime {
/**
* 判断number是否是素数
* @param number
* @return
*/
public static boolean isPrime(int number) {
// 从2循环到number的平方根即可
int max = (int) Math.sqrt(number);
for (int i = 2; i <= max; i++) {
if (number % i == 0) {
return false;
}
}
return true;
} public static void main(String[] args) {
for(int i = 101;i<=205;i++){
if(isPrime(i)){
System.out.println(i);
}
}
}
}
public class SuShu
{
public static void main(String[] args)
{
int i,j;
for(j=101;j<=205;j++)
{
for(i=2;i<=j/2;i++){
if(j%i==0)
break;
}
if(i>j/2)
System.out.println(j+"是素数!");
}
}
}