作者在 2011-10-16 22:33:41 发布以下内容
今天在百度知道上看到一网友问的一道C语言题,如下:
编写一个程序,输出从num开始的素数,其中num应由用户从键盘输入;
每次显示一行,
每行显示8个素数;
每行后按任意键继续显示下一行,按ESC键则结束;程序界面友好;
求某数
是否为素数请用一个独立的函数,
即该程序必须至少定义main()和求素数函数(函数名自定),
主函数中调用求素数函数。
如果回答后被采纳,奖励分为10分,我心动了,开始写ING……
最终代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#define ESC 27
int isPrime(int);//判断素数,是素数返回1否则返回0
void copyRight();//显示版权信息
int main()
{
int num,i,newLine=0;
system("color 04");
copyRight();
puts("请输入一个整数,程序将输出该数之后的素数:");
scanf_s("%d",&num);
for(i=num;;i++)
{
if(isPrime(i))
{
newLine++;
printf("%-4d ",i);
if(newLine%8==0)
{
puts("\n按任意键继续……");
if(getch()==ESC)
exit(0);
}
}
}
}
int isPrime(int num)
{
int flag=1,i;
if(num<2)
{
return 0;
}
for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
return flag;
}
void copyRight()
{
puts("\t\t\t*****************************");
puts("\t\t\t| 日期: 2011-10-16 |");
puts("\t\t\t| 版本: 1.0 |");
puts("\t\t\t| 作者: 尤慕 |");
puts("\t\t\t| 用途: 输出素数 |");
puts("\t\t\t| 提示: ESC键退出程序|");
puts("\t\t\t*****************************");
}
#include<stdlib.h>
#include<math.h>
#include<conio.h>
#define ESC 27
int isPrime(int);//判断素数,是素数返回1否则返回0
void copyRight();//显示版权信息
int main()
{
int num,i,newLine=0;
system("color 04");
copyRight();
puts("请输入一个整数,程序将输出该数之后的素数:");
scanf_s("%d",&num);
for(i=num;;i++)
{
if(isPrime(i))
{
newLine++;
printf("%-4d ",i);
if(newLine%8==0)
{
puts("\n按任意键继续……");
if(getch()==ESC)
exit(0);
}
}
}
}
int isPrime(int num)
{
int flag=1,i;
if(num<2)
{
return 0;
}
for(i=2;i<=sqrt(num);i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
return flag;
}
void copyRight()
{
puts("\t\t\t*****************************");
puts("\t\t\t| 日期: 2011-10-16 |");
puts("\t\t\t| 版本: 1.0 |");
puts("\t\t\t| 作者: 尤慕 |");
puts("\t\t\t| 用途: 输出素数 |");
puts("\t\t\t| 提示: ESC键退出程序|");
puts("\t\t\t*****************************");
}
写完后再去打开网友的问题的链接,却被告知该问题已被他关闭。10分没了,好遭罪啊我。
程序运行界面如下:
P.S:这网友真不道德。