质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。
实例
#include <stdio.h> int main(){ int n, i, flag = 0; printf("输入一个正整数: "); scanf("%d",&n); for(i=2; i<=n/2; ++i) { // 符合该条件不是素数 if(n%i==0) { flag=1; break; } } if (flag==0) printf("%d 是素数",n); else printf("%d 不是素数",n); return 0;}
运行结果:
输入一个正整数: 2929 是素数
实例 - 判断两个数之间的素数
#include <stdio.h> int main(){ int low, high, i, flag; printf("输入两个整数: "); scanf("%d %d", &low, &high); printf("%d 与 %d 之间的素数为: ", low, high); while (low < high) { flag = 0; for(i = 2; i <= low/2; ++i) { if(low % i == 0) { flag = 1; break; } } if (flag == 0) printf("%d ", low); ++low; } return 0;}
运行结果:
输入两个整数: 100 200100 与 200 之间的素数为: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
实例 - 使用函数判断两数间的素数
#include <stdio.h> int checkPrimeNumber(int n);int main(){ int n1, n2, i, flag; printf("输入两个正整数: "); scanf("%d %d", &n1, &n2); printf("%d 和 %d 间的素数为: ", n1, n2); for(i=n1+1; i<n2; ++i) { // 判断是否为素数 flag = checkPrimeNumber(i); if(flag == 1) printf("%d ",i); } return 0;} // 函数定义int checkPrimeNumber(int n){ int j, flag = 1; for(j=2; j <= n/2; ++j) { if (n%j == 0) { flag =0; break; } } return flag;}
输出结果为:
输入两个正整数: 10 3010 和 30 间的素数为: 11 13 17 19 23 29