算法:从键盘循环输入一个整数,判断是否是素数\质数

简介: 算法:从键盘循环输入一个整数,判断是否是素数\质数

程序分析:


1、质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。


2、nn能被mm整除,则m≤n2m≤n2,所以只需要穷举m∈[2,n2]m∈[2,n2]即可,若在穷举过程中出现了nn的情况则n是质数,若mm能自加到m=n2m=n2则n不是质数。


#include "stdio.h"
int main(void)
{
    int n = 0;
    while (1)
    {
        printf("请输入一个数(质数是大于1的自然数):");
        scanf_s("%d", &n);
        if (n == 2 || n == 3)
            printf("%d是质数!\n", n);
        for (int m = 2; m <= n / 2; m++)
        {
            if (n%m == 0)
            {
                printf("%d不是质数!\n", n);
                break;
            }
            if(m == n/2)
                printf("%d是质数!\n", n);
        }
    }
    return 0;
}
相关文章
|
2月前
|
自然语言处理 Rust 算法
【算法】13. 罗马数字转整数(多语言实现)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 | 字符 | 数值 | |--|--| | I | 1 | | V | 5 | | X | 10 | | L | 50 | | C | 100 | | D | 500 | | M | 1000 | 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1
【算法】13. 罗马数字转整数(多语言实现)
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读
22 0
|
3月前
|
算法 测试技术 C#
【数位dp】【C++算法】600. 不含连续1的非负整数
【数位dp】【C++算法】600. 不含连续1的非负整数
|
3月前
|
算法 Java C++
试题 算法训练 整数拆分
试题 算法训练 整数拆分
21 0
|
1月前
|
算法
算法题 — 整数转二进制,查找其中1的数量
算法题 — 整数转二进制,查找其中1的数量
12 0
|
2月前
|
算法 测试技术 C++
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
|
2月前
|
算法 测试技术 C++
【数位dp】【C++算法】600. 不含连续1的非负整数
【数位dp】【C++算法】600. 不含连续1的非负整数
|
2月前
|
算法
算法基础——整数二分查找(二)
算法基础——整数二分查找(二)
28 0
算法基础——整数二分查找(二)
|
3月前
|
算法 测试技术 C#
【滑动窗口】C++算法:K 个不同整数的子数组
【滑动窗口】C++算法:K 个不同整数的子数组
|
3月前
|
算法
算法题解-计数质数
算法题解-计数质数