#include<stdio.h>
int main(void)
{
unsignedlongnum;
unsignedlongdiv;
intisPrime;//素数的标志,1代表是素数,0代表不是素数
printf("Pleaseenteranintegerforanalysis.");
printf("Enterqtoquit.\n");
while(scanf("%lu",&num)==1&&num!=1)
{
for(div=2,isPrime=1;(div*div)<=num;div++){
if(num%div==0){//如果能被div整除
if((div*div)!=num){//约数不相等
printf("%luisdivisibleby%luand%lu.\n",num,div,num/div);
}else{//约数相同
printf("%luisdivisibleby%lu.\n",num,div);
}
//将isPrime设置为0,表示其不是一个素数
isPrime=0;
}
}
if(isPrime==1){
printf("%lu是素数.\n",num);
}
printf("Pleaseenteranotherintegerforanalysis.");
printf("Enterqtoquit.\n");
}
printf("Bye.\n");
return0;
}
运行效果:
printf()函数用法:
在C语言中,有三个函数可以用来在显示器上输出数据,它们分别是:
1、puts():只能输出字符串,并且输出结束后会自动换行。
2、putchar():只能输出单个字符。
3、printf():可以输出各种类型的数据。
printf() 是最灵活、最复杂、最常用的输出函数,完全可以替代 puts() 和 putchar(),
举例:
#include
int main()
{
printf("这是我的博客:\n");
printf("www.yuanshi***.top\n");
return 0;
}
printf() 格式控制符的完整形式如下:
%[flag][width][.precision]type
[ ] 表示此处的内容可有可无,是可以省略的。
1) type 表示输出类型,比如 %d、%f、%c、%lf,type 就分别对应 d、f、c、lf;
type 这一项必须有,这意味着输出时必须要知道是什么类型。
2) width 表示最小输出宽度,也就是至少占用几个字符的位置;
首先汇总一下用到的格式控制符:
%c输出一个单一的字符
%hd、%d、%ld以十进制、有符号的形式输出 short、int、long 类型的整数
%hu、%u、%lu以十进制、无符号的形式输出 short、int、long 类型的整数
%ho、%o、%lo以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数
%hx、%x、%lx%hX、%X、%lX以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。
%f、%lf以十进制的形式输出 float、double 类型的小数;%e、%le%E、%lE以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。
%g、%lg%G、%lG以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。
%s输出一个字符串。
第一题:
因有sqrt 所以需要+ math.h头文件
有scanf函数需要+_s
#include
#include
int is_prime(int n)
{
int i;
for (i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return 0;
return 1;
}
int main()
{
int i;
printf("请输入一个数;\n");
scanf_s("%d", &i);
if (is_prime(i))
printf("%d是素数\n", i);
else
printf("%d不是素数\n", i);
return 0;
}