求1到100以内的素数(质数)

  在我还没有学习JAVA之前我被一个还上初中的兄弟问到:一百以内有多少个质数,分别都是几呢,它们的和是多少?。虽然我们都知道质数的概念:质数又称素数,是指一个大于1的自然数中,除了1和其自身外,没法被其他自然数整除的数。我当时蒙圈了,都是哪些数字嘛我还能一一说出来,至于多少个嘛,数一数就好了。可是求和就浪费时间了。 后来身为小白的我刚接触JAVA这个行业,我也遇到求素数的题目。发现我在网上搜索答案的时候发现一些代码没有优化就提交了。我学习JAVA也有一个来月了,回头再看看我写的代码感觉效率好慢也是没有优化。在当时学习到的一些小知识点竟然没有运用。现在我也想分享一下我简单优化后的代码,后期还能优化就更好了:

public static void main(String[] args) {

   int count = 0;
   int sum = 0;
  for (int i = 2; i <= 100; i++) {
    boolean flag = false;
    for (int j = 2; j <= i >> 1; j++) {
     if (i % j == 0) {
        flag = true;
        break;
      }
  }
  if (!flag) {
    System.out.print(i + " ");
    sum += i;
    count++;
    }
  }
  System.out.println();
  System.out.println("1--100之间的素数(也称质数)的个数 -->"+count);
  System.out.println("1--100之间的素数(也称质数)的个数之和 -->"+sum);
}

  

时间: 2024-08-08 05:35:44

求1到100以内的素数(质数)的相关文章

用筛选法求100以内的素数(数组)

用筛选法求100以内的素数,要求使用数组. #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a[100],i,b[100],j,n=0;     //数组a[100]来放用于判断的数,数组b[100]来放素数 for(i=0;i<100;i++)       //注意这里i不能从1开始,因为数组a的首位是a[0]

嵌套循环专题 100以内所有的质数(素数) primeNumber

/*100以内的所有质数的输出.质数:素数,只能被1和它本身整除的自然数.-->从2开始,到这个数-1结束为止,都不能被这个数本身整除. 最小的质数是:2*/ 重点  重置flag 设立flag class PrimeNumberTest { public static void main(String[] args) { boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值 for(int i = 2;i <= 100;i++){//遍历100以内的自然数

实现100以内的素数输出(Python与C++对比)

今天从链接http://www.2cto.com/kf/201302/187699.html中看到了Python实现100以内的素数输出的算法,颇受感触.尤其是被其中的Python的列表生成器的使用方式帅到了! 看完Python的算法实现之后,先是回到老本行用C++实现了一遍,通过对比,你就可以发现Python真的是太简洁了!!! 1 /* 2 题目:100以内的素数输出算法验证 3 时间:2015年9月11日 4 作者:LeonWen 5 */ 6 7 #include "stdafx.h&q

打印100以内的素数,并求和

//打印100以内的素数,并求和 int sum = 0;//定义和的初始值为0 for (int i = 1; i <= 100; i++) { int count = 0;//定义一个数被整除的次数的初始值为0 for (int k = 1; k <= i; k++) { if (i % k == 0)//变量i被整除的时候 { count++; } } if(count==2)//只有被整除两次才是素数 { Console.Write(i+"\t"); sum +=

判断素数和输出100以内的素数

判断素数 public class Au { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int n = in.nextInt(); int isprime = 1; for(int i=2; i<n; i++){ if(n%i == 0){ isprime = 0; break; } } if(isprime ==

素数打表——找出1~100以内的素数

素数筛选法: #include <iostream> using namespace std; //素数打表模板 bool is_prime[100]; int main() { for(int i = 2;i<100;i++) { is_prime[i] = 1; } for(int i=2;i*i<100;i++){ if(is_prime[i]){ for(int j=i*i;j<100;j+=i){ is_prime[j] = 0; } } } //枚举1~100以内

汇编语言-判断素数:找出前100以内的素数

1. 题目:找出前100以内素数. 2. 要求:将前100以内素数找出并显示值,要求每行显示5个素数. 先列出求100以内素数的C++代码 然后根据C++代码写汇编代码,相对来说比较容易. 1 //The program is to find the primes from 1 to 100 with C++ 2 //By Karllen 3 //time: 05/19/2014 4 5 #include <iostream> 6 int main(void) 7 { 8 9 int numb

筛法--求1到100的所有素数

用筛法求出100以内的全部素数,并按每行五个数显示 从1开始每次判断一个数是否为素数,如果为素数,就把所有能被这个数整除的数排除,即不是素数 首先是一个判断素数的函数 1 bool sushu(int x) 2 { 3 if (x==2) 4 return true; 5 for (int i = 2;i <= sqrt(x);i++) 6 { 7 if (x%i==0) 8 return false; 9 } 10 return true; 11 } 把能被素数整除得数排除 1 for (in

python 求100内的素数/质数

质数(prime number)又称素数,有无限个.质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数 1 list1=[] 2 num=0 3 4 for i in range(2,100): 5 for j in range(2,int(i**0.5)+1): 6 print(int(i**0.5)+1) 7 if i%j==0: 8 break 9 else: 10 list1.append(i) 11 num+=1 12 print(list1) 13 pr