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; 
}
相关文章
|
23天前
|
C语言
C语言之完数、素数、回文数合集
C语言之完数、素数、回文数合集
|
1月前
|
C语言
你知道C语言中实现有序序列并序输出的2种方法吗?
你知道C语言中实现有序序列并序输出的2种方法吗?
|
1月前
|
C语言
【C语言】大小写字母的相互转化:多种方法解析及原理说明
【C语言】大小写字母的相互转化:多种方法解析及原理说明
106 0
|
1月前
|
C语言
【01】判断素数/质数(C语言)
【01】判断素数/质数(C语言)
|
3月前
|
C语言
C语言Oj题判断素数几种方式详解
输入一个数判断它是不是素数,并且不是的情况把它打印出来不是素数。
|
4月前
|
C语言
c语言编程练习题:7-33 统计素数并求和
c语言编程练习题:7-33 统计素数并求和
22 0
|
1月前
|
C语言
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
【C语言】输入一个数n,输出从n到n+100的范围内所有的素数,并统计素数的个数
24 0
|
26天前
|
编译器 C语言
【C语言】字母转换大小写的三种方法
【C语言】字母转换大小写的三种方法
43 0
|
1月前
|
存储 C语言 索引
C语言数组求和方法
C语言数组求和方法
55 0
|
1月前
|
算法 C语言
C语言判断素数
C语言判断素数
15 0