问题:编写一个Lex程序以检查数字是否为质数。
解释:
Lex是一个生成词法分析器的计算机程序,由Mike Lesk和Eric Schmidt编写。 Lex读取指定词法分析器的输入流,并输出以C编程语言实现词法分析器的源代码。
定义:质数是大于1的整数,其唯一因子是1及其本身。一个因数是一个整数,可以将其平均分为另一个数。前几个素数是:2、3、5、7、11、13、17、19、23和29。
例子:
Input: 2
Output: Prime number
Input: 6
Output: Not a Prime number
执行:
/* Lex Program to check whether a number is Prime or Not */
%{
/* Definition section */
#include
#include
int flag,c,j;
%}
/* Rule Section */
%%
[0-9]+ {c=atoi(yytext);
if(c==2)
{
printf("\n Prime number");
}
else if(c==0 || c==1)
{
printf("\n Not a Prime number");
}
else
{
for(j=2;j
输出: