使用c语言计算一个数是两个素数之积

 算法思想:
     1. 用户输入一个正整数n
     2. 循环查找所有满足条件的组合
     3. 在循环体中判断第一个数是否是素数,
        如果是素数,则判断n除以i是否是正整数,如果是正整数,就查找第二个素数
     4. flag为0:表示输入的正整数n不是两个素数之积
        flag为1:表示输入的正整数n是两个素数之积

注意:加减乘除都可以,只需要将操作符变一下就行。

#include // 判断素数
int isPrime(int n)
{int i, primeNum = 1;for(i = 2; i <= n / 2; ++i){if(n % i == 0){// 不是素数primeNum = 0;break;}}return primeNum;
}int main()
{// 计算一个数是两个素数之积int n,i,flag = 0;printf("输入正整数: ");scanf("%d",&n);for(i = 2; i <= n/2; ++i){// 检测判断if(isPrime(i) == 1){if(n % i == 0){// 可以将/改成你做需要的操作符if(isPrime(n / i) == 1){printf("%d = %d * %d\n",n,i,n / i);flag = 1;}}}}if(flag == 0){printf("%d 不能分解为两个素数。",n);}return 0;
}

运行结果:

1. 当n=6时

2. 当n=11时

3. 当n=15时


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部