用java编写一个输出1到00以内的素数并求和的程序 编写一Java程序 查找1—100之间的素数并将其运行结果输...
int sum=0; for (int i = 2; i <= 100; i++) { // 质数 for (int k = 2; k <= i; k++) { // 除数 // 排除所有在 i=k 之前 能被k整除(余数为0)的数 if (i % k == 0 && i != k) { break; } // 输出所有在 i=k 且 i%k=0的数 if (i % k == 0 && i == k) { System.out.println(i); sum+=i; } } } System.out.println("sum="+sum);思路:先说什么是素数。除了1和它本身以外不再有其他的因数就是素数。所以你要做的就是对于一个整数i,让他和比他小的正整数取余数,如果为0的话就肯定不是素数了。如果都不为0且最后只有他本身那么这个数就是素数了。看上面循环,直接从2开始就刨除了1,不然判断条件里面还得写1的判断
public static void main(String[] args) { int i,j;for(i=1;i<=100;i++){for(j=2;j<i;j++){if(i%j==0){break;}}if(i==j){System.out.println(i);}}}
public static int getPrimeSumOf(int num ){int sum = 0;
boolean [] primes = primeNumbers(num);
StringBuilder sb = new StringBuilder();
if(primes != null){
for(int i = 1; i< primes.length; i++){
if(primes[i]){
// System.out.print(i+" + ");//输出
sb.append(i+" + ");
sum += i; //求和
}
}
System.out.println(sb.toString().substring(0, sb.toString().length()-2));
System.out.println("= "+ sum);
}
return sum;
}
public static boolean[] primeNumbers(int num){
if(num <=0){
System.out.println("范围必须大于0");
return null;
}
boolean [] primes = new boolean[num+1];
primes[1] = false; //排除1
Arrays.fill(primes, 2, num+1, true);//从2开始,假设都为素数
int n = (int) Math.sqrt(num);
for(int i = 1; i< n; i++){
if(primes[i]){//如果i是质数,那么i的倍数不是质数
for(int j = 2*i; j<=num; j+=i){
primes[j] = false;
}
}
}
return primes;
}
----------------------------------
public static void main(String[] args) {
getPrimeSumOf(100);
}
提供个法子给你参考,不是效率最好的。
iResult 是求和结果,sResult 是输出结果,你在后边加输出语句输出即可。
for (int i = 2; i <= 100; i++) {
for (int j = 1; j <= i; j++) {
if (j != 1 && j != i && i%j == 0) {
break;
}
if (j == i) {
if (i == 2) {
sResult = sResult + i;
} else {
sResult = sResult + "," + i;
}
iResult = iResult + i;
}
}
}
public class Prime {
static boolean isPrime(int k){
if(k==2)
return false;
if(k%2==0)
return false;
int j=(int)Math.sqrt(k);
if(j%2==0)
j--;
while(j>2&&k%j!=0)
j-=2;
return j<2;
}
public static void main(String args[]){
int sum=2;
System.out.println("2 ");
for(int k=3;k<=100;k+=2){
if(isPrime(k)){
sum=sum+k;
System.out.println(k);
}
}
System.out.println("素数的和为"+sum);
}
}
主要是判断素数,这个方法有很多。
public class Test {
public static void main(String[] args) {
int sum = 0;
int i = 2;
while(i <= 100){
boolean isPrime = true;
for(int j = 2; j < i; j++){
if(i % j == 0){
isPrime = false;
break;
}
}
if(isPrime){
sum = sum + i;
}
i++;
}
System.out.println("Sum of prime number between 1 and 100 is: " + sum);
}
}
----------testing
Sum of prime number between 1 and 100 is: 1060
public class BT {
public static void main(String[] args) {
int sum = 0;
System.out.print("2 + 3");
sum += 2 + 3;
for (int i = 4; i < 100; i++) {
if (isCable(i)) {
System.out.print(" + " + i);
sum += i;
}
}
System.out.print(" = " + sum);
}
public static boolean isCable(int number) {
for (int i = 2; i <= number / 2; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
3183子洲县:用java编写一个输出1到00以内的素数并求和的程序
孟码15757911392:public static int getPrimeSumOf(int num ){ int sum = 0;boolean [] primes = primeNumbers(num);StringBuilder sb = new StringBuilder();if(primes != null){ for(int i = 1; i< primes.length; i++){ if(primes[i]){ \/\/Sy
3183子洲县:用java编写一个程序:输出1-1000;输出格式为0001,0002...1000
孟码15757911392:for(int i=1;i<1000;i++){ System.out.println(String.format("%04d",i));} d代表整数 4代表格式化为4位长 04代表位数不足4位的时候前面填0
3183子洲县:java数字自动补零
孟码15757911392:你在数字前面拼三个000,然后取后面三位就好了。public class Test { public static void main(String[] args) { int i = 6;int j = 10;System.out.println("i==" + codeFormat(i));System.out.println("i==" + codeFormat(j));} public static String codeFormat(int i) { String ...
3183子洲县:java 中,如何编程实现千位分隔符,如1000000显示成1,000,000
孟码15757911392:class moneyFormat{ public static void main(String args[]){ long n =10000000;DecimalFormat df = new DecimalFormat("#,###");String m = df.format(n);System.out.print(m);} } 输出结果如下 10,000,000 一般金额是需要保留两位小数,如果想保留小数把"#,###" 改成"#,###.00"望...
3183子洲县:在Java中怎么把1到9999的数字转成 4位字符串,左边补0 如 0001 0002 00...
孟码15757911392:public static void main(String[] args) { \/\/在Java中怎么把1到9999的数字转成 4位字符串,左边补0 如 0001 0002 0003 System.out.println("请输入一个1-9999之间的数字:");Scanner s = new Scanner(System.in);String str = s.next();char[] ary1 = str.toCharArray();char[] ary2...
3183子洲县:java中输出一个小数点后几位数怎么办
孟码15757911392:比如有一个double类型的数值double_int,要输出小数点后4位的字符串,如下即可:Stringdouble_str=String.format("%.4f",double_int);再次转化为double类型可以这样:doubleresult=Double.valueof(double_str);
3183子洲县:java中如何获得当前时间并输出:时,分,秒,
孟码15757911392:public static void main(String[] args) { Date d = new Date();SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");\/\/时:分:秒:毫秒 System.out.println(sdf.format(d));Long l = d.getTime();\/\/返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的...
3183子洲县:如何用java创建一个1990年1月1日 00:00:00的Date对象
孟码15757911392:Calendar.YEAR, 1900);calendar.set(Calendar.MONTH, Calendar.JANUARY);calendar.set(Calendar.DATE, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);Date day = calendar.getTime();用Calendar吧,date的set方法已经不推荐使用了 ...
3183子洲县:java编程,输入一个字符串001002003004,转换为1.2.3.4?
孟码15757911392:Java编程的时候是不是给它字符串,这个应该是可以直接进行转换,转换的速度非常快的。
3183子洲县:JAVA编程问题,数组写入,逆向输出。(代码如下)
孟码15757911392:publictaticoidain(Stringrgs[])hrowsOException intrr[]00,01,02,03,04,05;BufferedWriterwewufferedWriter(newileWriter("Dest.txt"));\/入数组 forint;arr.length;++)\/\/\/ bw.write(Integer.toString(arr[i]),');\/,隔开,为下面部分的字符串转换为数组提供切割点 \/\/\/ } bw.close();Buffere...
