首页 > 试题广场 >

KiKi求质数个数

[编程题]KiKi求质数个数
  • 热度指数:45955 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。

输入描述:


输出描述:
一行,一个整数,表示所有三位整数中,有多少个质数。
import java.util.Scanner;
public class Main  {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num=0;
        for (int i=100;i<=999;i++){
            for (int j=2;j<i;j++){
                if(i%j==0){
                    num++;
                    break;
                }
            }
        }
        System.out.println(900-num);
    }
}

发表于 2020-06-04 09:34:34 回复(0)
#include<stdio.h>
int main(){
    int sum=900,i,j,judge;
    for(i=100;i<1000;i++){
        for(j=2;j<i;j++){
            if(i % j == 0){
                judge=1;
                break;
            } 
            else judge=0;
        }
        if( judge == 1 ) sum--;
    }
    printf("%d",sum);
    return 0;
}

发表于 2022-06-14 17:24:34 回复(0)
#include <iostream>
using namespace std;

bool is_prime(int x)
{
    if (x == 1) return false;
    for (int i = 2; i <= x / i; i ++ )
    {
        if (x % i == 0) return false;
    }
    return true;
}

int main()
{
    int cnt = 0;
    for (int i = 99; i < 1000; i ++)
        if (is_prime(i)) cnt ++;
    cout << cnt << endl;
}

发表于 2022-02-26 14:16:43 回复(0)
#include<iostream>
using namespace std;

bool IsPrime(int i)
{
    bool flag = true;
    for(int j=2;j<i;j++)
    {
        if(i%j==0)
        {
            flag = false;
            break;
        }
    }
    if(flag)
        return true;
    else
        return false;
}
int main()
{
    int count =0;
    for(int i = 100;i<1000;i++)
    {
        if(IsPrime(i))
            count++;
    }
    cout<<count<<endl;
    return 0;
}

发表于 2020-07-27 21:00:27 回复(0)
#include <stdio.h>
int main()
{
    int s=0;
    for(int i=100;i<1000;i++)
    {
       for(int j=i-1;j>1;j--)
       {
           if(i%j!=0);
           else break;
           if(j==2) s++;
       }
    }
    printf("%d",s);
    return 0;
}
发表于 2020-04-20 11:12:15 回复(0)
#include<stdio.h>
int main()
{
    int count=0,flag;
    for(int i=100;i<1000;i++)
    {
        flag=0;/*每次重新赋值*/
        for(int j=2;j<i;j++)
        {
            if(i%j==0)/*如果被其他数整除则令flag=1*/
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
            count++;
    }
    printf("%d",count);
    return 0;
}

发表于 2021-03-12 20:11:31 回复(0)
a = []
for i in range(100,1000):
    for j in range(2,i):
        if (i%j == 0):
            break
    else:
        a.append(i)
print(len(a))

发表于 2020-10-11 01:47:14 回复(1)
int main()
{
	printf("143");    //供娱乐
	return 0;
}

发表于 2023-01-17 10:46:46 回复(2)
#include <stdio.h>

int main() 
{
    int count = 0;  //计算质数的个数
    //生成100到999的数,并且偶数肯定不是质数
    for (int i = 101; i<1000; i += 2)   
    {
        int falg = 0;
        //生成1到i的除数
        for (int j = 1; j<= i; j++) {
            if(i % j == 0)
            {
                falg++;
            }
            //被第三个数整除就不是质数了,提高效率
            if(falg > 2)
            {
                break;
            }
        }
        if(falg == 2)
            count++;
    }
    printf("%d\n",count);
    return 0;
}

发表于 2024-06-19 01:07:43 回复(1)
#include <stdio.h>
int main() {
   int n=0;
   int i=0;
   int count=0;
   for(n=100;n<=999;n++)
   {
    for(i=2;i<n;i++)
    {
        if(n%i==0)
        {
            count++;//先算出有多少不是素数,再用900减去
            break;          
        }
    }
   }
   printf("%d", 900-count);
    return 0;
}
发表于 2024-06-01 21:55:24 回复(0)
#include <stdio.h>
int is_prime(int n) {
    int i = 0;
    for (i = 2; i < n; i++) {
        if (n % i == 0)
            return 0;
    }
    return 1;
}
int main() {
    int count = 0;
    int i = 0;
    for (i = 100; i <= 999; i++) {
//判断i是否为质数
        if (is_prime(i)) {
            count++;
        }
    }
    printf("%d\n", count);
    return 0;
}

发表于 2024-02-04 17:33:04 回复(0)
#include <stdio.h>

int main(void) {
    int a=0,b=0;
    for(int i=100;i<=999;i++)
    {
        a=0;
        for(int j=1;j<=i;j++)
        {
            if(i%j==0)
            a++;
        }
        if(a==2)
        b++;
    }
    printf("%d",b);
}

发表于 2022-11-10 17:01:58 回复(2)
#include<stdio.h>
#include<math.h>
int main()
{
  int i ,j;                //定义两个临时变量
  int count = 0;          //定义一个计数器
  for(i = 101;i<1000;i+=2)//我们知道偶数肯定可以被2整除,因此i直接从101开始,每次+2;减少了一半的偶数;调高效率
  {
    for(j = 2;j<sqrt(i);j++)//这里j从2开始,j不能<=sqrt(i)
    {
      if(i%j==0)            //如果j<=走到这里就会进入判断,break后,j会++;
      {
        break;
      }
    }
    if(j>sqrt(i))          //导致这里判断会失败
    {
      count++ ;
    }
  }
  printf("%d",count);    //打印质数的个数
  return 0;
}

发表于 2021-12-26 12:41:38 回复(0)
#include<stdio.h>
int main()
{
    int count=0;
    for(int i=100;i<1000;i++)
    {
        for(int j=2;j<=i;j++)
        {
            if(j==i)
            count++;
            if(i%j==0)
            break;
        }
    }
    printf("%d",count);
    return 0;
}
发表于 2021-10-25 22:56:34 回复(0)
#include <stdio.h>
int main()
{
    int n;
    int j=0;
    for (n=100;n<1000;n++)
    {
        for(int i=2;i<n;i++)
        {
            if((n%i)== 0) 
            {
                j++;
                break;
            }
        }
    }
    printf("%d\n",(900-j));
    return 0;
}

发表于 2020-09-28 14:52:36 回复(0)
#include <stdio.h>
#include <math.h>

int main(void)
{
    int count = 0;
    int i, j, isprime;
    
    for (i = 100; i < 1000; i++)
    {
        isprime = 1;
        for (j = 2; j <= sqrt(i); j++)
        {
            if (0 == i % j)
            {
                isprime = 0;
                break;
            }
        }
        if (isprime)
        {
            count++;
        }
    }
    printf("%d\n", count);
    
    return 0;
}
//看过C Primer Plus的直接理解即可;
编辑于 2020-04-18 23:58:27 回复(0)
#include <stdio.h>

int main() {
int count=0;
int count1=0;
const int number = 999;
for (int i = 100; i <= 999; i++ ) {
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count1++;
}
}
if (count1 == 2) {
count++;
}
count1 = 0;
}
printf("%d", count);

return 0;
}
发表于 2024-11-18 18:39:40 回复(0)
import math
counts = 0
for i in range(100,1000):
    sq = int(math.sqrt(i))
    flage = 1
    for j in range(2,sq+1):
        if i%j == 0:
            flage = 0
            break
    if flage:
        counts += 1
print(counts)

发表于 2024-09-28 13:46:56 回复(0)
#include<stdio.h> //参照别人的,写得很微妙
int main()
{
    int i,j,n=1,count=0;
    for(i=100;i<=999;i++)
    {
        n=1;              //n赋值不能为0
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
                n=0;    //n=0不是无用功,如果没有n=0,n的值将全是非0,影响下面if条件的执行
                break;  //break,当证明它是质数时跳出本循环如当i=20,j=2即证明,不用证明j=2后面的数
            }
        }
        if(n)          //这个if是在外循环,初始n时n=1既是真,执行if都语句,当i%j!=0时执行这语句
        {
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

发表于 2024-09-26 21:18:37 回复(0)
#include<stdio.h>

int main()
{
    int count=0;//切记!!初始化
    for(int i=100;i<1000;i++){
        int yin=0;//记录三位数的因数个数
        for(int j=2;j<(i/2+1);j++){
            if(!(i%j)) yin++;
        }
        if(yin==0) count++;
    }
    printf("%d",count);
    return 0;
}
发表于 2024-09-09 21:34:52 回复(0)