从键盘输入一个大于2的整数,判断是否为素数,并输出判断结果。
可以使用循环来遍历2到输入的整数-1之间的所有数,如果区间的任意一个数可以整除 这个整数,则输入的整数不是素数,如果都不能整除,则是素数。
参考链接:
#include <stdio.h>
#include <math.h>
int main(void){
int num;
scanf("%d",&num);
// https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515
// 循环的结束条件,可以优化下,即改为 i<=(int)sqrt(num)
for(int i=2;i<num;i++){
// https://zhidao.baidu.com/question/19105497.html
// 如果输入的整数num 可以整除2到num-1区间的任意一个数
// 则num不是素数
if(num%i==0){
printf("%d不是素数。\n",num);
return 0;
}
}
// 循环结束,说明区间2到num-1之间的所有整数都不能整除num
// 所以num是素数,打印结果
printf("%d是素数。\n",num);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int n ,i;
scanf("%d", &n);
if (n < 2)
printf("input error.");
else {
for (i = 2; i < n; i++)
if (n % i == 0)
break;
if (i < n)
printf("%d 为非素数", n);
else
printf("%d 为素数", n);
}
return 0;
}
#include <stdio.h> #include <string.h> main() { char str[20][10],t[20],str1[10]; int i,j,n=0; while(1) { scanf("%s",str1); if(str1[0]=='#') { break; } else { strcpy(str[n],str1); n++; } } for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) { if(strlen(str[j])>strlen(str[j+1])) { strcpy(t,str[j]); strcpy(str[j],str[j+1]); strcpy(str[j+1],t); } } for(i=0;i<n;i++) { printf("%s ",str[i]); } }