C语言输入一个不大于10000的正整数S为两个质数的和,要求输出一个整数为两个质数的最大乘积
时间: 2024-04-30 18:23:17 浏览: 111
求质数1000以内,C语言.c
思路:
1. 定义一个函数isprime(),用于判断一个数是否为质数。
2. 判断每个数是否为质数,并且判断另一个数是否也为质数,如果是,则计算它们的积,并比较大小。
3. 输出最大的乘积。
代码实现:
```c
#include <stdio.h>
int isprime(int n)
{
int i;
if(n == 2 || n == 3) return 1;
if(n == 1 || n % 2 == 0) return 0;
for(i = 3; i * i <= n; i += 2)
if(n % i == 0)
return 0;
return 1;
}
int main()
{
int s, i, max = -1;
scanf("%d", &s);
for(i = 2; i <= s / 2; i++)
{
if(isprime(i) && isprime(s - i))
{
if(max < i * (s - i))
max = i * (s - i);
}
}
printf("%d", max);
return 0;
}
```
运行结果:
```
输入:20
输出:91
```
说明:20可以表示为2+18、3+17、5+15、7+13中的任意一组,而其中最大的乘积为7×13=91。
阅读全文