c语言分解质因数_C语言经典100题(14)

1

上期答案揭晓

首先给大家看看上一篇文章C语言经典100题(13)中第三部分编程题的答案:

#includeint main(){    int i,x,y,z;    for(i=100;i<1000;i++)    {        x=i%10;        y=i/10%10;        z=i/100%10;        if(i==(x*x*x+y*y*y+z*z*z))        printf("%d\n",i);    }    return 0;}

以上实例输出结果为:

153370371407

2

今日知识分享

引用方式调用函数

通过引用传递方式,形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。 传递指针可以让多个函数访问指针所引用的对象,而不用把对象声明为全局可访问。
/* 函数定义 */void swap(int *x, int *y){   int temp;   temp = *x;    /* 保存地址 x 的值 */   *x = *y;      /* 把 y 赋值给 x */   *y = temp;    /* 把 temp 赋值给 y */   return;}
现在,让我们通过引用传值来调用函数 swap():
#include /* 函数声明 */void swap(int *x, int *y);int main (){   /* 局部变量定义 */   int a = 100;   int b = 200;   printf("交换前,a 的值:%d\n", a );   printf("交换前,b 的值:%d\n", b );   /* 调用函数来交换值    * &a 表示指向 a 的指针,即变量 a 的地址    * &b 表示指向 b 的指针,即变量 b 的地址   */   swap(&a, &b);   printf("交换后,a 的值:%d\n", a );   printf("交换后,b 的值:%d\n", b );   return 0;}
当上面的代码被编译和执行时,它会产生下列结果:
交换前,a 的值:100交换前,b 的值:200交换后,a 的值:200交换后,b 的值:100
上面的实例表明了,与传值调用不同,引用调用在函数内改变了 a 和 b 的值,实际上也改变了函数外 a 和 b 的值。

3

今日经典编程题 题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
  • 如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。
  • 但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。
  • 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

各位有兴趣的读者可以自行设计程序实现,我将在下一篇文章揭晓该题的代码实现供参考!

扫码关注我,手把手带你撸代码 c9d44f71382dfa8157cd69c1e8b0636a.png

如果你觉得文章让您增长了知识,

请点击右下方的“在看

   710c71af53c029fab7d10a00c3b9024f.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值