ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[info]判断一个数字是否为质数。 ~~~C #include <stdio.h> #include <math.h> int main(){ int n; printf("input a num:"); scanf("%d",&n); for(int i=2;i<=(int)sqrt(n);i++){ if(n%i==0) { printf("可以被%d整除\n", i); printf("%d不是质数\n", n); return 0; } } printf("%d是质数\n", n); return 0; } /** 菜鸟教程其他方法: #define MAX 1000 int isPrimeNaive(int n) { if(n <= 1) return 0; for(int i = 2; i < n; i++) if(n % i == 0) return 0; return 1; } int isPrime(int n) { if(n<= 1) return 0; if(n == 2) return 1; if(n%2 == 0) return 0; int limit = (int)sqrt((double)n); for(int i = 3; i <= limit; i=i+2) { if(n % i == 0) return 0; } return 1; } void sieve() { prime[0] = 0; prime[1] = 0; for(int i = 2; i < MAX; i++) prime[i] = 1; int limit = (int)sqrt((double)MAX); for(int i = 2; i <= limit; i++) { if(prime[i]) for(int j = i*i; j <= MAX; j+=i) prime[j] = 0; } } int isPrimeSieve(int n) { if(prime[n]) return 1; else return 0; } **/ ~~~