用JAVA编写一个简单的程序输出100以内的素数? 15
3个回答
展开全部
封装好的方法getPrimes(),以后你可以拿去用在其他的程序中
import java.util.ArrayList;
import java.util.List;
public class Primes {
public static void main(String[] args) {
// 求素数
int[] primes = getPrimes(100);
// 输出结果
for (int i = 0; i < primes.length; i++) {
Integer prime = primes[i];
System.out.printf("%8d", prime);
if (i % 10 == 9) {
System.out.println();
}
}
}
/**
* 求 n 以内的所有素数
*
* @param n 范围
*
* @return n 以内的所有素数
*/
private static int[] getPrimes(int n) {
List<Integer> result = new ArrayList<Integer>();
result.add(2);
for (int i = 3; i <= n; i += 2) {
if (!divisible(i, result)) {
result.add(i);
}
}
int[] r = new int[result.size()];
for (int i = 0; i < r.length; i++) {
r[i] = result.get(i);
}
return r;
}
/**
* 判断 n 是否能被整除
*
* @param n 要判断的数字
* @param primes 包含素数的列表
*
* @return 如果 n 能被 primes 中任何一个整除,则返回 true。
*/
private static boolean divisible(int n, List<Integer> primes) {
for (Integer prime : primes) {
if (n % prime == 0) {
return true;
}
}
return false;
}
}
import java.util.ArrayList;
import java.util.List;
public class Primes {
public static void main(String[] args) {
// 求素数
int[] primes = getPrimes(100);
// 输出结果
for (int i = 0; i < primes.length; i++) {
Integer prime = primes[i];
System.out.printf("%8d", prime);
if (i % 10 == 9) {
System.out.println();
}
}
}
/**
* 求 n 以内的所有素数
*
* @param n 范围
*
* @return n 以内的所有素数
*/
private static int[] getPrimes(int n) {
List<Integer> result = new ArrayList<Integer>();
result.add(2);
for (int i = 3; i <= n; i += 2) {
if (!divisible(i, result)) {
result.add(i);
}
}
int[] r = new int[result.size()];
for (int i = 0; i < r.length; i++) {
r[i] = result.get(i);
}
return r;
}
/**
* 判断 n 是否能被整除
*
* @param n 要判断的数字
* @param primes 包含素数的列表
*
* @return 如果 n 能被 primes 中任何一个整除,则返回 true。
*/
private static boolean divisible(int n, List<Integer> primes) {
for (Integer prime : primes) {
if (n % prime == 0) {
return true;
}
}
return false;
}
}
展开全部
public class ss
{
public static void main(String args[])
{
int i,j;
for(j=2;j<=100;j++)
{
for(i=2;i<=j/2;i++)
{
if(j%i==0)
break;
}
if(i>j/2)
{
System.out.println(j);
}
}
}
}
{
public static void main(String args[])
{
int i,j;
for(j=2;j<=100;j++)
{
for(i=2;i<=j/2;i++)
{
if(j%i==0)
break;
}
if(i>j/2)
{
System.out.println(j);
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public boolean isPrime(int n){
if(n<=1) return false;
if(n==2) return true;
for(int i=2;i<n-1;i++)
if(n%i==0)
return false
return true;
}
if(n<=1) return false;
if(n==2) return true;
for(int i=2;i<n-1;i++)
if(n%i==0)
return false
return true;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询