#include<stdio.h>int main(){ int n; printf("请输入一个正整数(大于2):"); scanf("%d",&n); while(n<2)//这里用于判断输入的数是不是大于等于2,不是的话就重新输入 { printf("请输入大于2的正整数:"); scanf("%d",&n); } for(int i=
判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数.思路1)的代码:#include <stdio.h> int main(){ int a=0; // 素数的个数 int num=0; // 输入的整数 printf("输入一个整数:")
#include<stdio.h> int main(){ int n,i,k; k = 1;//默认是素数 scanf("%d",&n); for(i=2;i<n;i++){ if(n%i==0) { printf("NO"); k = 0; break; } } if((k==1) && (i==n)) printf("YES"); return 0; } 帮你修改了下,你试试看吧.
1. 思路1:判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数.代码如下:#include <stdio.h> int main(){ int a=0; // 素数的个数 int num=0; // 输入的整数 printf("输入一个整数:
解释如下: #include"stdio.h"#include"math.h" main() { int i,k,m; //定义三个整形变量 scanf("%d",&i); //输入i的值 k=sqrt(i); //把输入的i的值的平方根的值赋值给k for(m=2;m<=k;m++) //从2开始进入循环,判断从2到k之间的数是否能被i整除 if(i%m==0) //如果能被2整除则用break跳出循环 break; if(m>k) //判断通过循环后的m的值是否比k大,如果比k大则i是素数 printf("%d是素数 ",i); else //如果不是则i不是素数 printf("%d不是素数",i); getch(); }
原发布者:邂逅枫林 } if(i==val) printf("YES!\n"); else printf("No!\n");}注:for循环的功能:①若能整除,通过break跳出函数②若一直到val-1都不能整除,此时i再自增1到val,不满足i<val跳出for循环,这时i=val.2.通过函数来判断/* 目的:
题目看错,下面的才是 #include <stdio.h> #include <math.h> int IsPrime(long Num); int main() { long n; while(1) { printf("input a number: "); scanf("%ld", &n); if (IsPrime(n) == 1) { printf("%ld is a prime number.\n", n); } if(IsPrime(n) == 0) {
#include<stdio.h>#include<math.h> int main() { int i,k,m; int n=0; scanf("%d",&m);//此处m应该用 &m k=sqrt(m)+0.01;//此处类型不匹配.不需要+0.01 for(i=2;i<k;i++) //此处错误:当K<16时,根本不会进入循环.改为i<=k { if(m%i==0) printf(
main() { int x; int i,f; f=0; scanf("%d",&x); for(i=2;i<x;i++) if(x%i==0) { f=1; break;} else {f=0; continue;} if(f) printf("no\n"); else printf("yes\n"); }
判断素数的方法很多. 以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数.否则n为素数. 参考代码如下: int is_prime(int n)//判断n是否为素数.{ int i; for(i = 2; i