#include <iostream>
#include <algorithm>
using namespace std;
void mdm( int prime[] );

int main(){
  int j=0 ,n ,ans=0 ,flag=0;
  while( true ){
    cin >> n;
    if( n == 0 ) break;
    int prime[10000]; // 素数
    int allay[10000];
    if( !flag ) mdm( prime ); // 素数仕分け
    flag = 1;
    for( int i=2 ;i<=10000 ; i++ ){
      if( prime[i] == 1 ){
	allay[j] = i;
	j++;
      }
    }

    for( int i=0 ; i<n ; i++ ){ // 加算
      ans += allay[i];
    }

    cout << ans << endl;
    ans = 0;
    j=0;
  }
}



void mdm( int prime[] ){ // ユークリッドの互除法
  int i ,j ,n=10000; 
  for( i=2 ; i<=n ; i++ ){ // 自然数を列挙
    prime[i] = 1;
  }
  i = 2;
  while( i*i <= n ){
    if( prime[i] == 1 ){ // 素数なら
      j = i*2;
      while( j <= n ){
	prime[j] = 0;
	j += i;
      }
    }
    i++;
  }
  return;
}