NC230096. Prime
描述
输入描述
第一行输出一个正整数接下来有次询问,每个询问单独占一行,每次给一个正整数,询问第一个大于等于的素数数据随机分布
输出描述
对每一个询问将答案单独一行输出到屏幕
示例1
输入:
2 1 4
输出:
2 5
C 解法, 执行用时: 7383ms, 内存消耗: 352K, 提交时间: 2022-05-21 22:44:01
#include <stdio.h> long long su(long long n){ long long shi=1,i; if(n==1) shi=0; for(i=2;i*i<=n;i++){ if(n%i==0){ shi=0; break; } } return shi; } int main() { int n; long long l,i; scanf("%d",&n); while(n--){ scanf("%lld",&l); for(i=l;;i++){ if(su(i)==1){ printf("%lld\n",i); break; } } } return 0; }
C++ 解法, 执行用时: 7799ms, 内存消耗: 420K, 提交时间: 2021-12-12 13:50:05
#include<bits/stdc++.h> using namespace std; long long x,n; bool pd(long long a) { for(int i=2;i<=sqrt(a);i++) if(a%i==0) return 0; return 1; } int main() { cin>>n; for(long long i=1;i<=n;i++) { cin>>x;bool t=1;if(x==1) ++x; while(t){ if(pd(x)){ cout<<x<<endl; t=0; } ++x; } } }
pypy3 解法, 执行用时: 9415ms, 内存消耗: 26612K, 提交时间: 2021-12-12 20:22:52
import math n=int(input()) for i in range(n): a=int(input()) for j in range(a,10**14): if j==1 or j==2: print(2) break for a in range(2,int(math.sqrt(j))+1): if j%a==0: break else: print(j) break