使用函数判断Armstrong 数

简介: 【10月更文挑战第24天】使用函数判断Armstrong 数。

使用函数判断Armstrong 数

include

include

int checkPrimeNumber(int n);
int checkArmstrongNumber(int n);

int main()
{
int n, flag;

printf("输入正整数: ");
scanf("%d", &n);

// 检测素数
flag = checkPrimeNumber(n);
if (flag == 1)
    printf("%d 是素数。\n", n);
else
    printf("%d 不是素数\n", n);

// 检测 Armstrong 数
flag = checkArmstrongNumber(n);
if (flag == 1)
    printf("%d 是 Armstrong 数。", n);
else
    printf("%d 不是 Armstrong 数。",n);
return 0;

}

int checkPrimeNumber(int n)
{
int i, flag = 1;

for(i=2; i<=n/2; ++i)
{

// 非素数条件
    if(n%i == 0)
    {
        flag = 0;
        break;
    }
}
return flag;

}

int checkArmstrongNumber(int number)
{
int originalNumber, remainder, result = 0, n = 0, flag;

originalNumber = number;

while (originalNumber != 0)
{
    originalNumber /= 10;
    ++n;
}

originalNumber = number;

while (originalNumber != 0)
{
    remainder = originalNumber%10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

// 判断条件
if(result == number)
    flag = 1;
else
    flag = 0;

return flag;

}

输出结果为:

输入正整数: 371
371 不是素数
371 是 Armstrong 数。

相关文章
|
11月前
|
消息中间件 监控 大数据
优化Apache Kafka性能:最佳实践与调优策略
【10月更文挑战第24天】作为一名已经对Apache Kafka有所了解并有实际使用经验的开发者,我深知在大数据处理和实时数据流传输中,Kafka的重要性不言而喻。然而,在面对日益增长的数据量和业务需求时,如何保证系统的高性能和稳定性成为了摆在我们面前的一个挑战。本文将从我的个人视角出发,分享一些关于如何通过合理的配置和调优来提高Kafka性能的经验和建议。
337 4
|
11月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
217 9
|
11月前
|
人工智能 Java 物联网
JAVA网络编程的未来:URL与URLConnection的无限可能,你准备好了吗?
随着技术的发展和互联网的普及,JAVA网络编程迎来新的机遇。本文通过案例分析,探讨URL与URLConnection在智能API调用和实时数据流处理中的关键作用,展望其未来趋势和潜力。
156 7
|
11月前
|
存储 Java 关系型数据库
高效连接之道:Java连接池原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。频繁创建和关闭连接会消耗大量资源,导致性能瓶颈。为此,Java连接池技术通过复用连接,实现高效、稳定的数据库连接管理。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接池的基本操作、配置和使用方法,以及在电商应用中的具体应用示例。
276 5
|
11月前
|
机器学习/深度学习 人工智能 测试技术
探索软件测试中的“禅”:寻找内在的平和与外在的效率####
在软件测试的世界里,我们常常被缺陷的数量、测试用例的覆盖度以及上线时间的紧迫性所困扰。但如果我们能像禅宗修行者一样,将注意力转向内心的平静与专注,或许能在纷繁复杂的测试工作中找到一种全新的效率和质量提升之道。本文将带您走进软件测试的“禅意世界”,探讨如何在看似枯燥无味的测试过程中,通过调整心态、优化方法,实现个人成长与项目成功的双赢。 ####
|
11月前
|
Java 开发者
JAVA高手必备:URL与URLConnection,解锁网络资源的终极秘籍!
在Java网络编程中,URL和URLConnection是两大关键技术,能够帮助开发者轻松处理网络资源。本文通过两个案例,深入解析了如何使用URL和URLConnection从网站抓取数据和发送POST请求上传数据,助力你成为真正的JAVA高手。
224 11
|
11月前
|
JSON 安全 算法
JAVA网络编程中的URL与URLConnection:那些你不知道的秘密!
在Java网络编程中,URL与URLConnection是连接网络资源的两大基石。本文通过问题解答形式,揭示了它们的深层秘密,包括特殊字符处理、请求头设置、响应体读取、支持的HTTP方法及性能优化技巧,帮助你掌握高效、安全的网络编程技能。
253 9
|
11月前
求一个整数的所有因数
【10月更文挑战第24天】求一个整数的所有因数。
105 6
|
11月前
|
存储 数据建模 大数据
设计和构建健壮的数据系统26数据建模
【11月更文挑战第2天】数据建模是设计健壮数据系统的关键步骤,通过绘制数据系统的蓝图,帮助我们理解数据结构、关系及业务规则。常见的数据建模方法有实体-关系模型(E-R模型)和面向对象的数据建模。数据建模的步骤包括需求收集、概念建模、逻辑建模和物理建模。在整个过程中,需要不断验证和更新模型,确保其符合实际业务需求。
145 6
|
11月前
两数之间的 Armstrong 数
【10月更文挑战第24天】两数之间的 Armstrong 数。
69 4