小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

基于visual Studio2013解决C语言竞赛题之1057打印加数






题目


解决代码及点评

 /*
功能:	 已知N是正整数, 它可拆写成三个正整数N1、N2和N3之和的形式N=N1+N2+N3。
		请编程序打印出满足上式的全部组合,并当N1、N2和N3中至少有两个是素数时打印“YES”否则打印“NO”。
		如N=5时输出:
		5 = 1 + 1 + 3     NO
		5 = 1 + 2 + 2     YES
		5 = 1 + 3 + 1     NO
		5 = 2 + 1 + 2     YES
		5 = 2 + 2 + 1     YES
		5 = 3 + 1 + 1     NO
 
时间:2:12 2013/10/25
*/

#include<stdio.h>
#include<stdlib.h>
#include <math.h>

int judePri(int);				//判断一个数是否为素数

void main()
{
	int N;
	scanf_s("%d",&N);

	for(int i=1;i<N;i++)
	{
		for(int j=1;j<=N;j++)
		{
			int k=N-i-j;
			if(i+j+k==N && k>0)			//找到满足条件的i,j,k
			{
				int sum=judePri(i)+judePri(j)+judePri(k);		//sum保存素数的个数
				printf("%d + %d + %d = %d\t",i,j,k,N);			//打印结果
				if(sum>=2)										//判断素数个数是否大于等于2
				{
					printf("YES\n");
				}
				else
				{
					printf("NO\n");
				}
			}
		}
	}
	system("pause");
}

int judePri(int n)
{
	if(n==1)
	{
		return 0;
	}
	else if (n==2||n==3)
	{
		return 1;
	} 
	else
	{
		for(int i=2;i<=(int)sqrt((double)n);i++)
		{
			if(n%i==0)
				return 0;
		}
	}
	return 1;
}


代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行


程序运行结果


代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






posted on 2013-12-10 00:11  牛栏山1  阅读(147)  评论(0编辑  收藏  举报

导航