java 打印1-100之间的素数<;只能用一个for循环>;

for(int i = 0 ; i
java 打印1-100之间的素数<;只能用一个for循环>;
100以内素数只要不能被10以内的素数整除即可:
1000以内不能被100以内的素数整除即可
public static void main(String args[]) {
ArrayList list = new ArrayList();
for(int i = 0 ; i <= 100 ; i++){
if((i!=2)&&(i%2 == 0)) continue;
if((i!=3)&&(i%3 == 0)) continue;
if((i!=5)&&(i%5 == 0)) continue;
if((i!=7)&&(i%7 == 0)) continue;
System.out.println("素数为:"+i);
}
}
结果为:
素数为:1
素数为:2
素数为:3
素数为:5
素数为:7
素数为:11
素数为:13
素数为:17
素数为:19
素数为:23
素数为:29
素数为:31
素数为:37
素数为:41
素数为:43
素数为:47
素数为:53
素数为:59
素数为:61
素数为:67
素数为:71
素数为:73
素数为:79
素数为:83
素数为:89
素数为:972010-03-12
输出1到100的素数

import java.util.*;
public class Test{
static void prime(int a){ //判断函数,从2开始判断到该数的一半。如果有能整除的,就不是素数,否则就是素数
int k=a/2; // 该数的一半
int i = 2; //从2开始
boolean isPrime = true;//素数标记
for(;i<=k;i++){//判断是否素数
if(a%i==0)
isPrime = false; //不是素数
}
if(isPrime) //输出
System.out.println(a + " is prime");

}
public static void main(String[] args){

for(int i=1;i<=100; ++i){
prime(i);
}
}
}2010-03-12
这个求素数牛,用一个循环求素数有什么意义吗?
这种题目关键不是要效率吗
基本思路就是找到根号n里面所有素数后,将这些素数的倍数都否定,因为一个素数的倍数不可能是素数
import java.util.BitSet;

public class Sieve {
public static void main(String[] args) {
int n = 2000000;
double start = System.currentTimeMillis();
BitSet b = new BitSet(n);
int i;
//将b集合的i位置都设置成true
for (i = 2; i <= n; i++)
b.set(i);
i = 2;
int k;
//找出根号n中所有素数,100个数只用找10个
while (i * i <= n)
{
if (b.get(i))//如果是素数
{
k = 2 * i;//计算该素数的倍数
while (k <= n)
{
b.clear(k);//否定该数,也就是设置成false
k += i;//继续计算倍数
}
}
i++;
}
//上面的搞完后,b集合里没有被否定的数全部都是素数

double end = System.currentTimeMillis();
System.out.println((end - start) / 1000 + "秒");
for (i = 0; i < b.size(); i++)
{
if (b.get(i))
System.out.println(i);
}
}
}2010-03-12
你用如下的代码测试一下 看看是否有想要的结果
public class findPrime{
public static boolean prime (int n){
for(int k=2;k<=Math.sqrt(n);k++)
{
if (n%k==0)
return false;
}
return true;
}

public static void main(String args[]){
for (int m=1;m<=100;m++){
if (prime(m))
System.out.print(m+",");
}
}
}2010-03-12
test
{
main(){
for(i=2;i<100;+=i)
{
if(new test().tf(i))system.out.print(" "=i);
}
}
boolean tf(int a)
{ int i=2;
while(i<a/2)
{
if(a%i==0) return false;
else ++i;continue;
}
return true;
}
}2010-03-12
确实有解?
至少要两个循环,一个从1到100,一个用来判断某数是否是质数

wilson0126:19算不算素数,13算不算,17算不算?2010-03-12
mengvlog 阅读 7 次 更新于 2025-07-19 18:49:25 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部