求从2开始到某一个给定整数的所有质数
比如 输入10 得到 从2到10的所有质数为 2 3 5 7
输入20 得到 从2到20 的所有质数为 2 3 5 7 11 13 17 19
得到的结果从小到大排列下来
初学者~请详细解释下谢谢~
JAVA 求质数素数
答案:4 悬赏:50
解决时间 2021-02-04 10:58
- 提问者网友:他的思颖
- 2021-02-03 14:52
最佳答案
- 二级知识专家网友:绝望伪装
- 2021-02-03 16:02
public class Test {
public static void main(String[] args) {
getValues();
}
public static void getValues(){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个整数:");
try {
int num=Integer.parseInt(br.readLine());//从控制台获得输入的数据
String resultStr="";//结果字符串
boolean flag=false;//是否能被整除
for (int i = 2; i <= num; i++) {//大循环是把每一个数拿出来
for (int j = 2; j < i; j++) {//小循环是把当前拿出的这个数从2开始除直到这个数之前
if(i%j==0){flag=true;}//如果能被整除(没有余数)则标识给true
}
if(flag==false){resultStr+=i+" ";}//如果标识为false说明没被赋过值,也就是除了2和本身以外没别的数能除开,则给结果里外循环的当前这个数加入到输出字符串中
flag=false;//别忘了再给标识重设置为false为下次外循环做准备
}
System.out.println("2到"+num+"之间的所有质数有:"+resultStr);
br.close();
getValues();
} catch (Exception e) {
e.printStackTrace();
}
}
}
就是提供个思路,希望有用
public static void main(String[] args) {
getValues();
}
public static void getValues(){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个整数:");
try {
int num=Integer.parseInt(br.readLine());//从控制台获得输入的数据
String resultStr="";//结果字符串
boolean flag=false;//是否能被整除
for (int i = 2; i <= num; i++) {//大循环是把每一个数拿出来
for (int j = 2; j < i; j++) {//小循环是把当前拿出的这个数从2开始除直到这个数之前
if(i%j==0){flag=true;}//如果能被整除(没有余数)则标识给true
}
if(flag==false){resultStr+=i+" ";}//如果标识为false说明没被赋过值,也就是除了2和本身以外没别的数能除开,则给结果里外循环的当前这个数加入到输出字符串中
flag=false;//别忘了再给标识重设置为false为下次外循环做准备
}
System.out.println("2到"+num+"之间的所有质数有:"+resultStr);
br.close();
getValues();
} catch (Exception e) {
e.printStackTrace();
}
}
}
就是提供个思路,希望有用
全部回答
- 1楼网友:放肆的依賴
- 2021-02-03 18:21
import java.util.*;
public class WelcomeJFrame{
public static void main(String args[])
{
Scanner reader=new Scanner(System.in);
int max=0,i=2,n=2;
boolean flag=false;
max=reader.nextInt();
while(i<=max)
{
flag=false;
for(n=2;n
- 2楼网友:绝望伪装
- 2021-02-03 17:26
public static void main(String[] args) {
int max = 50; // 求50以内的素数
for (int i = 2; i < max; i++) {
if(sushu(i)) {
System.out.println(i);
}
}
}
public static boolean sushu(int n) {
if(n == 2) {
return true; //2是素数
}
int x = (int) Math.floor(Math.sqrt(n)); // 找到与n的平方根接近的整数
for (int i = 2; i <= x; i++) {
if(n % i == 0) {
return false; // 若余数为零说明除尽了,不是素数
}
}
return true;
}
- 3楼网友:承载所有颓废
- 2021-02-03 16:16
package test;
import java.io.*;
public class mathss
{
public static void main(string args[])
{
system.out.println("输出201到300之间的全部质数");
int n,i;
boolean b=false;
for(n=201;n<=300;n++)
{
for(i=2;i<150;i++)
{
if(n%i ==0)
{
b=true;
break;
}
}
if(b){b=false;continue;}
system.out.println (n);
}
}
}
其实你的方法也是对的,就是你的for循环后边多了一个“;”
把for(i=2;i<=n;i++);
{
if(n%i ==0)
break;
}里for后边的“;”去掉就对了;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯