标题: 求救去素数,,有会做的没??程序有点小问题,,, [打印本页] 作者: 坏坏坏男孩 时间: 2016-7-11 23:49 标题: 求救去素数,,有会做的没??程序有点小问题,,, public class everyday {
//求101到200之间的素数.count用来计数,n用来存放模,m用来存放模是零的数的个数. 但是运行的结果是只有101 1个素数,,程序该怎么调整??
public static void main(String[] args) {
int count=0,n=0,m=0;
for (int i = 101; i < 200; i++) {
for (int j = 1; j <= i; j++) {
n = i % j;
if (n==0) {
m=m+1;
}
}
if (m==2) {
System.out.println(i);
count++;
m=0;
}
}
System.out.println(count);
程序分析:首先明白什么是素数,只能被1和本身整除的数,用循环遍历101-200之间的数,然后用101~200间的书整出2到该数前面一个数,比如是113,我们113整除2~112之间的数,只要这里的数整出都不等于0,则可以判断这个数是素数;
class HelloWorld {
public static void main(String[] args) {
int x = 0;//素数标志位
int y = 0;//素数换行标志位
for (int i = 101; i <= 200; i++) {
for (int j=2; j<i; j++) {
//如果j能被i整出在跳出循环
if (i % j == 0) {
x = 0;
break;
}
else {
//2到I-1之间无可以整除数,让标志位置一
x = 1;
}
}
//如果素数标志位为一时,让换行标志位加一,并输出素数值
if (x == 1) {
y++;
System.out.print(i + " ");
//素数达到五个时换行操作
if (y == 5) {
y = 0;
System.out.println();
}
}
}
}
}作者: 745661590 时间: 2016-7-12 01:23
第二种想法:
class HelloWorld {
public static void main(String[] args) {
int y = 0, x = -1;
for (int i = 101; i <= 200; i++) {
x = -1;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
x++;
}
}
if ( x == 0 ) {
y++;
System.out.print(i + " ");
if (y == 5) {
y = 0;
System.out.println();
}
}
}
}
}作者: cat73 时间: 2016-7-12 01:39