用c语言已知正整数n是两个不同的质数的乘积,试求出两者中较大的那个质数 输入一个正整数n,输出一个正整数p,即较大的那个质数。
时间: 2023-03-26 08:01:03 浏览: 112
您好,根据您的问题,我可以回答。以下是代码实现:
```
#include <stdio.h>
int main()
{
int n, i, p;
printf("请输入一个正整数n:");
scanf("%d", &n);
for(i = 2; i <= n / 2; i++)
{
if(n % i == )
{
p = n / i;
break;
}
}
printf("较大的质数为:%d\n", p);
return ;
}
```
希望能够帮到您!
相关问题
已知两个质数乘积n,求较大的那个质数 ,n是21,用c语言写出来
以下是用C语言实现的代码,使用了一个简单的算法:从2开始逐一判断是否是n的因子,如果是则更新n,最后剩下的就是较大的那个质数。
```c
#include <stdio.h>
int main() {
int n = 21;
int i = 2;
while (i * i <= n) {
if (n % i == 0) {
n /= i;
} else {
i++;
}
}
printf("较大的质数是 %d\n", n);
return 0;
}
```
输出结果为:
```
较大的质数是 7
```
用c语言中的for循环写出一个输入两个正整数求其中最大公约数和最小公倍数的程序
下面是用C语言中的for循环写出的一个求两个正整数的最大公约数和最小公倍数的程序:
```c
#include <stdio.h>
int main() {
int num1, num2, i, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
// 求最大公约数
for (i = 1; i <= num1 && i <= num2; i++) {
if (num1 % i == 0 && num2 % i == 0) {
gcd = i;
}
}
// 求最小公倍数
lcm = (num1 * num2) / gcd;
printf("最大公约数为 %d,最小公倍数为 %d\n", gcd, lcm);
return 0;
}
```
程序首先要求用户输入两个正整数,然后用for循环从1到两个数中较小的数依次检查是否能同时被两个数整除,如果能,则更新最大公约数的值。最后用求得的最大公约数和两个数的乘积计算最小公倍数,最后输出最大公约数和最小公倍数的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)