C语言求素数的几种方法

简介: C语言求素数的几种方法

一、判断n是否能被2~n-1整除


输入的数n不能被2-(n-1)整除,说明是素数


输入的数n能被2-(n-1)整除,说明不是素数


注意:1不是素数,素数是指大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数。


法一:


#include<stdio.h>
int main()
{
    int i, n;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    for (i = 2; i < n ; i++)
    {
        if (n%i == 0)
            break;
    }
    if (n <=1 ) printf("这不是素数\n");
    else  if (i < n) printf("这不是素数\n"); 
    else printf("这是素数\n");
    return 0;
}


法二:


#include<stdio.h>
int main()
{
    int i, n;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    if(n<=1)
        printf("这不是素数\n");
    else
        {
        for (i = 2; i < n ; i++)
      {
             if (n%i == 0)
             break;
       }
         if(i>=n)
          printf("这是素数\n");
         else
          printf("这不是素数\n");
    }
   return 0;
}


二、判断n是否能被2~√n间的整数整除


输入的数n不能被2-√n整除,说明是素数


输入的数n能被2-√n整除,说明不是素数


方法一:


#include<stdio.h>
#include<math.h>
int main()
{
    int n,i;
    double k;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    k = sqrt(n);
    for (i = 2; i <= k;i++)
    {
        if (n%i == 0) break;
    }
    if (n <=1 ) printf("这不是素数\n");
    else if (i <= k) printf("这不是素数\n");
    else printf("这是素数\n");
    return 0;
}


方法二:


#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,k;
    printf("请输入一个数:"); 
    scanf("%d", &n);
    if(n<=1)
        printf("这不是素数\n");
    else
    {
        k=sqrt(n);
        for (i=2;i<=k;i++)
        {
            if (n%i==0)
            break;
        }
        if(i>=k+1) 
            printf("这是素数\n"); 
        else 
            printf("这不是素数\n");
    }
    return 0; 
}
相关文章
|
1月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
22 3
|
5月前
|
C语言
C语言初阶:如何判断是否为素数并且输出
C语言初阶:如何判断是否为素数并且输出
44 0
|
5月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
28 1
|
5月前
|
C语言
【C语言刷题每日一题】——打印100到200之间的素数
【C语言刷题每日一题】——打印100到200之间的素数
|
5月前
|
C语言
C语言----寻找100~999范围内的质数--素数
C语言----寻找100~999范围内的质数--素数
|
5月前
|
C语言 Windows
C语言素数的不同求法
C|素数的不同求法及在线测试比较
|
5月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
110 7
|
5月前
|
C语言
C语言---函数----100~n之间的素数
C语言---函数----100~n之间的素数
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
46 1
|
5月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
41 0