C语言每日一练(2)获取合数和质数

题目:获取小于输入数字的所有合数和质数

考查的知识点:

    第一、将输入的字符串转换成数字,使用atoi函数,头文件stdlib.h;

    第二、计算质数和合数的方法:

    if(i % j == 0){

        break;

    }

    break之后,如果j < i,那么就是合数,因为没有增加到i,就整除了

    如果 j = i或者 i = 2 ,那么就是质数,因为一直也没有整除。

/*
*   获取n(n>1)以内的所有质数或者合数
*/
#include <stdio.h>
#include <stdlib.h>

//获取质数
static int get_prime(int n, int *data)
{
    int i,j;
    int k = 0;
    for(i = 2; i < n+1; i++){
        for(j = 2; j < i; j++){
            if(i % j == 0){
                break;
            }
        }
        if((i == j) || (i == 2)){    //一直没有整除,j=i所以为质数
            data[k] = i;
            k++;
        }
    }
    return k;
}

//获取合数
static int get_composite(int n, int *data)
{
    int i,j;
    int k 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是用C语言写一个区分素数和合数的代码: #include <stdio.h> int main() { int num, i, flag = 0; printf("请输入一个正整数:"); scanf("%d", &num); for (i = 2; i <= num / 2; ++i) { // 如果num能被i整除,则num不是素数 if (num % i == 0) { flag = 1; break; } } if (num == 1) { printf("1既不是素数也不是合数\n"); } else { if (flag == 0) printf("%d是素数\n", num); else printf("%d是合数\n", num); } return 0; } ### 回答2: C语言代码如下: ```c #include <stdio.h> int isPrime(int num) { if(num <= 1) return 0; // 1不是素数也不是合数 for(int i = 2; i * i <= num; i++) { if(num % i == 0) return 0; // 如果能整除,则不是素数 } return 1; // 是素数 } int main() { int num; printf("请输入一个整数:"); scanf("%d", &num); if(isPrime(num)) { printf("%d 是素数\n", num); } else { printf("%d 是合数\n", num); } return 0; } ``` 上述代码中,我们定义了一个`isPrime`函数用于判断一个数是否为素数。素数是指大于1且只能被1和自身整除的数。 在`main`函数中,我们通过用户输入一个整数,然后调用`isPrime`函数判断输入的数是否为素数。根据函数返回值,我们输出相应的结果:若返回值为1,则输出该数是素数;若返回值为0,则输出该数是合数。 ### 回答3: 用C语言编写一个区分素数和合数的程序可以使用以下算法: 1. 首先,让用户输入一个正整数n。 2. 然后,编写一个函数来判断n是否为素数。素数是只能被1和自身整除的数。可以使用循环从2开始一直到n-1尝试将n除以每个数字,如果n被任何数字整除,则它不是素数。 3. 最后,编写一个主程序来调用该函数并输出结果。如果函数返回true,则说明n是一个素数,否则n是一个合数。 下面是一个示例代码: #include<stdio.h> #include<stdbool.h> bool isPrime(int n) { if (n <= 1) { return false; } for(int i = 2; i < n; i++) { if (n % i == 0) { return false; } } return true; } int main() { int number; printf("请输入一个正整数:"); scanf("%d", &number); if (isPrime(number)) { printf("%d是素数。\n", number); } else { printf("%d是合数。\n", number); } return 0; } 在这个示例代码中,isPrime函数用来判断一个整数是否为素数。在主程序中,用户输入一个正整数,然后通过调用isPrime函数来判断并输出结果。如果输入的整数是素数,则程序将输出“x是素数”,否则输出“x是合数”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值