|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
int i,num;
printf("请输入一个整数:");
scanf("%d",&num);
for(i = 2;i < num / 2;i++)
{
if (num % i == 0)
{
printf("%d不是素数/n",num);
}
else
{
printf("%d是一个素数/n",num);
}
}
return 0;
}
创新了一下,但纯小白,运行1的时候把换行符都打印进去了而且打印很多遍是什么原因
- #include <stdio.h>
- int main(void)
- {
- int f , i , num ;
- printf("请输入一个整数:") ;
- scanf("%d" , & num) ;
- f = 0 ;
- if(num > 1) { // 素数必须大于 1
- if(num % 2 && num % 3 && num % 5 && num % 7) { // 如果 num 同时不能被 2、3、5、7 整除
- for(f = 1 , i = 3 ; i * i < num + 1 ; i += 2) { // 用排除法进行判定,f = 1,先行假定 num 是素数
- if(! (num % i)) { // 如果 num 除以 i 余数为 0
- f = 0 ; // 则 f = 0 ,num 不是素数
- break ; // 退出循环
- }
- }
- } else { // 否则
- if(num == 2 || num == 3 || num == 5 || num == 7) { // 如果 num 等于 2、3、5、7
- f = 1 ; // f = 1 ,num 是素数
- }
- }
- }
- if(f) printf("%d 是素数\n" , num) ;
- else printf("%d 不是素数\n" , num) ;
- }
复制代码
|
|