5个回答
展开全部
#include <stdio.h>
int isPrime(int);
int main() {
int n;
for (n = 4; n <= 100; n += 2) {
int i;
for (i = 2; i <= n / 2; i++)
if (isPrime(i) && isPrime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);
break;
}
}
return 0;
}
int isPrime(int n) {
int i;
if (n < 2)
return 0;
if (n == 2)
return 1;
else
for (i = 2; i * i <= n; i++)
if (n % i == 0)
return 0;
return 1;
}
如果不使用函数,代码将臃肿不堪(可能超过百行),难以理解。
展开全部
#include <stdio.h>
void main( )
{
int i, j, k, IsPrime;
for(i = 4; i <= 100; i += 2) /*偶数i从4到100*/
{
for(j = 2; j <= i / 2; j++) /* 将j从2到i/2进行测试 */
{
for(k = 2, IsPrime = 1; (k <= j / 2) && IsPrime; k++) /*判断j是否为素数*/
if(j % k == 0) IsPrime = 0;
if(IsPrime) { /*如果j是素数*/
for(k = 2, IsPrime = 1; (k <= (i - j) / 2) && IsPrime; k++) /*判断i-j是否是素数*/
if((i - j) % k == 0) IsPrime = 0;
if(IsPrime) /*如果i-j也是素数,则找到了i的一个解,将其输出,下一个偶数i*/
{
printf("%d = %d + %d\t", i, j, i - j);
break;
}
}
}
}
}
除了printf与main外,没有用到其他任何的函数,楼主不妨试一试。
void main( )
{
int i, j, k, IsPrime;
for(i = 4; i <= 100; i += 2) /*偶数i从4到100*/
{
for(j = 2; j <= i / 2; j++) /* 将j从2到i/2进行测试 */
{
for(k = 2, IsPrime = 1; (k <= j / 2) && IsPrime; k++) /*判断j是否为素数*/
if(j % k == 0) IsPrime = 0;
if(IsPrime) { /*如果j是素数*/
for(k = 2, IsPrime = 1; (k <= (i - j) / 2) && IsPrime; k++) /*判断i-j是否是素数*/
if((i - j) % k == 0) IsPrime = 0;
if(IsPrime) /*如果i-j也是素数,则找到了i的一个解,将其输出,下一个偶数i*/
{
printf("%d = %d + %d\t", i, j, i - j);
break;
}
}
}
}
}
除了printf与main外,没有用到其他任何的函数,楼主不妨试一试。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int su(int n)//判断是否为素数
{
int i,count=0;
for(i=1;i<=n;i++)
if(n%i==0)
count++;
if(count==2)
return 1;
else
return 0;
}
void main()
{
int n;
int i;
do
{
printf("输入一个2-100之间的偶数:");
scanf("%d",&n);
}while((n<=100) && (n>=4) && (n%2!=0));//判断输入是0和100之间的偶数
for(i=2;i<=n/2;i++)
{
if(su(i)&&su(n-i))//判断是否两个因数都为素数,如果是则打印出来
printf("%d=%d+%d\n",n,i,n-i);
}
}
可以打印出所有该偶数的质素因子之和。楼主可测试一下;
int su(int n)//判断是否为素数
{
int i,count=0;
for(i=1;i<=n;i++)
if(n%i==0)
count++;
if(count==2)
return 1;
else
return 0;
}
void main()
{
int n;
int i;
do
{
printf("输入一个2-100之间的偶数:");
scanf("%d",&n);
}while((n<=100) && (n>=4) && (n%2!=0));//判断输入是0和100之间的偶数
for(i=2;i<=n/2;i++)
{
if(su(i)&&su(n-i))//判断是否两个因数都为素数,如果是则打印出来
printf("%d=%d+%d\n",n,i,n-i);
}
}
可以打印出所有该偶数的质素因子之和。楼主可测试一下;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1234567891011121314151617181920212223242526272829#include <stdio.h> int isPrime(int); int main() { int n; for (n = 4; n <= 100; n += 2) { int i; for (i = 2; i <= n / 2; i++) if (isPrime(i) && isPrime(n - i)) { printf("%d = %d + %d\n", n, i, n - i); break; } } return 0;} int isPrime(int n) { int i; if (n < 2) return 0; if (n == 2) return 1; else for (i = 2; i * i <= n; i++) if (n % i == 0) return 0; return 1;}
如果不使用函数,代码将臃肿不堪(可能超过百行),难以理解。
如果不使用函数,代码将臃肿不堪(可能超过百行),难以理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询