列表

详情


BC162. 牛牛的素数判断

描述

牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
牛牛想知道输入的 n 个数分别是不是素数

输入描述

第一行输入一个正整数 n ,表示后续要输入的数的数量。
后续 n 行每行输入一个正整数,表示需要判断的数。

输出描述

输入的第 2 到第 n+1 行每行输出一次,如果输入的是素数则输出 true ,否则输出 false

示例1

输入:

3
2
3
6

输出:

true
true 
false

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-07-26

#include<stdio.h>
int Isprime(int k)
{
    int j=0;
    for(j=2;j<k;j++)
    {
        if(k%j==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n;
    int b;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&b);
   
    if(Isprime(b)==1)
    {
        printf("true\n");
    }
    else
    {
        printf("false\n");
    }
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-04-23

#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a;
    int i=0;
    for(i=0;i<n;i++)
    {
        getchar();
        scanf("%d",&a);
        int b=sqrt(a);
        int j=0;
        for(j=2;j<=b;j++)
        {
            if(a%j==0)
            {
                printf("false\n");
                break;
            }
        }
        if(j>b)
        {
            printf("true\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-04-02

#include <stdio.h>
int isprime(int num);
int main(void)
{
    int num, n;
    scanf("%d", &num);
    while(scanf("%d", &n) == 1){
//         getchar();
        if(isprime(n)==1)
            printf("true\n");
        else
            printf("false\n");
    }
    return 0;
}

int isprime(int num)
{
    int i;
    for(i=2;i<num;i++){
        if(num%i==0)
            return 0;
    }
    return 1;
}

C 解法, 执行用时: 2ms, 内存消耗: 308KB, 提交时间: 2022-03-16

#include<stdio.h>
int main()
{
    int issushu(int x);
    int n=0;
    int a[100]={0};
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d\n",&a[i]);
    }
    for(int i=0;i<n;i++){
        if(issushu(a[i]))printf("true\n");
        else printf("false\n");
    }
    return 0;
}
int issushu(int x){
    for(int i=2;i<x;i++){
        if(x%i==0){
            return 0;
            break;
        }
    }
    return 1;
}

C 解法, 执行用时: 2ms, 内存消耗: 328KB, 提交时间: 2022-06-18

#include <stdio.h>
#include <math.h>

int main(){
    int count, num, flag;
    scanf("%d", &count);
    while(flag = 0, count--){
        scanf("%d", &num);
        for(int i = 2; i < sqrt(num); i++)
            flag += num % i == 0? 1 : 0;
        printf("%s\n", flag? "false" : "true");
    }
    return 0;
}

上一题