标题: 网上看到一个输出素数的代码 [打印本页] 作者: 田磊阳 时间: 2013-3-6 12:56 标题: 网上看到一个输出素数的代码 import java.util.*;
public class Prime {public static void main(String[] args) {
for (int i = 2; i <= 100; i++)
{
CheckPrimeNumber(i);
}
}
public static void CheckPrimeNumber(int num)
{
int sum = 0;
for (int i = 1; i <= num; i++)
{
if (num % i == 0) {
sum++;
}
}
if (sum == 2)
{
System.out.print(num+",");
}
}
}
没看明白啊,谁能帮我解释一下这段代码作者: 田磊阳 时间: 2013-3-6 13:01
import java.util.*;
public class Prime {public static void main(String[] args) {
int mark,count=0;
for(int i=2;i<=100;i++)
{
mark=1;
for(int j=2;j<=i/2;j++)
{
if(i%j==0)
{
mark=0;
break;
}
}
if(mark==1)
{
count++;
System.out.println(i);
}
}
System.out.println("素数的个数为"+count);
}
}作者: 克零岚 时间: 2013-3-6 14:02
import java.util.*;
public class Prime {
//首先先说明一下:素数指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {//由这里可以看出我们是在求100以内的素数,
CheckPrimeNumber(i); //因为素数是大于1的自然数,所以i从2开始.
}
}
public static void CheckPrimeNumber(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {//根据开头的说明,我们可以知道,素数只能够被两个数整除,就是1和它本身
if (num % i == 0) {
sum++; //所以sum++这里只会执行两次,因为素数只能被两个数整除,余数为0嘛,
} //满足余数为0的只有1和它本身
}
if (sum == 2) { //这里就是在判断,如果sum==2(即次数为素数),
System.out.print(num + ","); //就输出这个素数
}
}
}
作者: scott0610 时间: 2013-3-6 14:12
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
CheckPrimeNumber(i);
}
}
public static void CheckPrimeNumber(int num) {
//定义一个变量,用于存储参数能整除的个数
int sum = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
//能整除的个数加加
sum++;
}
}
//如果sum等于2,说明num值能被1和自身整除,符合素数。打印输出该素数。
if (sum == 2) {
System.out.print(num + ",");
}
}
复制代码
不知道解释清楚没。希望对你有所帮助!作者: 克零岚 时间: 2013-3-6 14:25
import java.util.*;
public class Prime {
public static void main(String[] args) {
int mark, count = 0;
for (int i = 2; i <= 100; i++) { //也是求100以内的素数
mark = 1;
for (int j = 2; j <= i / 2; j++) {//这个for循环,主要是在剔除那些除了1和它本身以外,
if (i % j == 0) { //还能被非0自然数整除的数
mark = 0; //如果i%j==0条件满足,也说明i是还能够被除了1和它本身以外的数整除的数字,
break; //就使mark=0,就跳出本次循环,开始执行下面的if语句,但此时mark=0,所以下面的if语句就不能执行
}
}
if (mark == 1) {
count++;
System.out.println(i);
}
}
System.out.println("素数的个数为" + count);
}
} 作者: 田磊阳 时间: 2013-3-11 13:13
谢谢楼上的好朋友